2015-11-03 54 views
0

以下的NodeJS哈皮代碼生成錯誤在http://localhost:3000/documentation揚鞭,高致病性禽流感:路徑/模型產生錯誤

查詢時如果我更改爲/型號別的東西端點的路徑,像/用戶例如,一切運作良好。它看起來像保留了端點/模型

任何想法爲什麼任何其他端點的工作除了/模型?我該如何解決它?我無法更改網址,因爲有太多人使用它。

var Hapi   = require('hapi'), 
    Inert   = require('inert'), 
    Vision   = require('vision'), 
    Joi    = require('joi'), 
    HapiSwagger  = require('hapi-swagger') 


var server = new Hapi.Server(); 
server.connection({ 
    host: 'localhost', 
    port: 3000 
}); 

var swaggerOptions = { 
    apiVersion: "1.0" 
}; 

server.register([ 
    Inert, 
    Vision, 
    { 
     register: HapiSwagger, 
     options: swaggerOptions 
    }], function (err) { 
    server.start(function(){ 
     // Add any server.route() config here 
     console.log('Server running at:', server.info.uri); 
    }); 
}); 

server.route(
    { 
     method: 'GET', 
     path: '/models', 
     config: { 
      handler: function (request, reply) { 
       reply("list of models") 
      }, 
      description: 'Get todo', 
      notes: 'Returns a todo item by the id passed in the path', 
      tags: ['api'], 
      validate: { 
       params: { 
        username: Joi.number() 
         .required() 
         .description('the id for the todo item') 
       } 
      } 
     } 
    } 
) 



server.start(function(){ 
    // Add any server.route() config here 
    console.log('Server running at:', server.info.uri); 
}); 

回答

2

models是招搖的內部結構的一部分,它看起來像使用模型作爲URL爲端點的部分終端處理時,有一個問題在swagger.js文件。

簡單的解決方法是使用nickname。這會改變內部參考,但UI仍應該說models,它會正確地觸發您的端點。

{ 
    method: 'GET', 
    path: '/models/{username}', 
    config: { 
     handler: function (request, reply) { 
      reply("list of models") 
     }, 
     description: 'Get todo', 
     notes: 'Returns a todo item by the id passed in the path', 
     tags: ['api'], 
     plugins: { 
      'hapi-swagger': { 
       nickname: 'modelsapi' 
      } 
      }, 
     validate: { 
      params: { 
       username: Joi.number() 
        .required() 
        .description('the id for the todo item') 
      } 
     } 
    } 
}