2016-10-10 5 views
0

Мы используем Loopback успешно до сих пор, но мы хотим добавить параметры запроса в нашу документацию API.Определение параметров запроса для основных операций CRUD в Loopback

В нашем файле swagger.json, мы могли бы иметь что-то похожее =>

{ 
     "swagger": "2.0", 
     "info": { 
     "version": "1.0.0", 
     "title": "poc-discovery" 
     }, 
     "basePath": "/api", 
     "paths": { 
     "/Users/{id}/accessTokens/{fk}": { 
      "get": { 
      "tags": [ 
       "User" 
      ], 
      "summary": "Find a related item by id for accessTokens.", 
      "operationId": "User.prototype.__findById__accessTokens", 
      "parameters": [ 
       { 
       "name": "fk", 
       "in": "path", 
       "description": "Foreign key for accessTokens", 
       "required": true, 
       "type": "string", 
       "format": "JSON" 
       }, 
       { 
       "name": "id", 
       "in": "path", 
       "description": "User id", 
       "required": true, 
       "type": "string", 
       "format": "JSON" 
       }, 
       { 
        "name":"searchText", 
        "in":"query", 
        "description":"The Product that needs to be fetched", 
        "required":true, 
        "type":"string" 
       }, 
       { 
        "name":"ctrCode", 
        "in":"query", 
        "description":"The Product locale needs to be fetched. Example=en-GB, fr-FR, etc.", 
        "required":true, 
        "type":"string" 
       }, 
      ], 

Я 99% уверен swagger.json информация получает генерируется динамически с помощью информации из .json файлов в каталоге /server/models.

Я надеюсь, что я могу добавить параметры запроса, которые мы принимаем для каждой модели в этих файлах .json. То, что я хочу избежать, - это напрямую изменить swagger.json.

Каков наилучший подход для добавления наших параметров запроса, чтобы они отображались в наших документах? Очень смутно, как наилучшим образом подойти к этому.

ответ

1

После нескольких часов возиться, я боюсь, что нет прямого пути для достижения этой цели, поскольку созданная здесь спецификация swagger представляет собой представление удаленных метаданных для методов модели вместе с данными модели из model.json.
Таким образом, обновление метаданных для встроенных методов модели будет проблематичным, и это может быть не полностью поддержано реализацией метода.

правильный подход, ИМО, здесь заключается в следующем:
- создать remoteMethod оболочки вокруг встроенный метод, для которого требуется дополнительный Params, который будет введено с requried http отображения данных. - И отключите конечную точку REST для встроенного метода, используя MyModel.disableRemoteMethod(<methodName>, <isStatic>).

+0

есть * нет * прямой способ ...? –

+0

Спасибо за ваш ответ в любом случае! –

+1

Еще одна вещь: если вы закончите писать remoteMethod, вам нужно будет обрабатывать дополнительные параметры в реализации удаленного метода и передать правильные аргументы, как ожидалось, методом модели, чтобы получить ожидаемый результат. – gunjpan

 Смежные вопросы

  • Нет связанных вопросов^_^