2016-01-19 4 views
0

Библиотека node-restify допускает такие пути, как /foo/:id. Можете ли вы размахивать такими путями? то есть что-то вроде?Могут ли узловые регенерирующие пути работать с swagger?

var getFoo = { 
    'spec': { 
     'description': 'foo library', 
     'path': '/foo/:id', 
     'summary': 'return foo by id', 
     'type': 'string', 
     'produces': ['application/json'] 
    }, 
    'action': getFooObject() 
}; 
swagger.addGet(getFoo) 

Когда я пытаюсь это в моем приложении, то http://locahost:3001/api-docs страница выглядит следующим образом:

{ 
    apiVersion: "0.0.1", 
    swaggerVersion: "1.2", 
    apis: [ 
     { 
      path: "/foo" 
     } 
    ] 
} 

Я пытался уйти от двойного двоеточия с \ характером. Но это не имело никакого значения. Также попытался заменить одиночные кавычки двойными кавычками. Все равно никакой разницы. Я использую библиотеку swagger-node-restify, которая является вилкой из репозитория swagger-node. Что я делаю не так?

ответ

0

Вы описываете проект swagger 1.2, в котором есть несколько файлов для его описания. Вы можете прочитать больше о развязности 1.2 спецификации здесь:

https://github.com/OAI/OpenAPI-Specification/blob/master/versions/1.2.md

Из-за этого, ваш API не будет описан в api-docs месте. Он должен быть указан на api-docs/foo на основе вашего описания выше.

примечание /api-docs называется списком ресурсов, и оно указывает на декларацию Api, которая размещена относительно api-docs как /foo.

Заключительное примечание, спецификация swagger 1.2 старая, а оснастка для 2.0 намного лучше. Рассмотрите возможность обновления вашего проекта до swagger-node или другого.

+0

Я использую библиотеку swagger-node-restify. Вот почему версия swagger - 1.2. Я попытаюсь использовать узел swagger напрямую. Посмотрим. – Prachi

+0

Я пробовал путь 'http: // localhost: 3001/api-docs/foo'. Он существует, но не имеет спецификации для функции getFoo. – Prachi

+0

Вы видите '/ {id}' как путь? – fehguy