Swagger-hapi: path /models 产生错误
Swagger-hapi: path /models generate errors
以下 NodeJS Hapi 代码在 http://localhost:3000/documentation
查询时产生错误
如果我将端点的路径更改为 /models 以外的路径,例如 /users,则一切正常。看起来端点 /models 已保留。
知道为什么除 /models 之外的任何其他端点都能正常工作吗?我该如何解决?我无法更改 URL,因为使用它的人太多了。
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);
});
是 models
是 swagger 内部结构的一部分,在处理使用模型作为 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')
}
}
}
}
以下 NodeJS Hapi 代码在 http://localhost:3000/documentation
查询时产生错误如果我将端点的路径更改为 /models 以外的路径,例如 /users,则一切正常。看起来端点 /models 已保留。
知道为什么除 /models 之外的任何其他端点都能正常工作吗?我该如何解决?我无法更改 URL,因为使用它的人太多了。
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);
});
是 models
是 swagger 内部结构的一部分,在处理使用模型作为 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')
}
}
}
}