2015-05-19 1 views
4

Я пытаюсь создать службу REST, описав ее в Swagger YAML.Субпаты в Swagger Объявление YAML

Служба имеет три пути:

  • /версии
  • /партнеры/{PARTNERID}/пользователей/{идентификатор пользователя}/сессий
  • /партнеры/{PARTNERID}/книги/{BookID}/

Мой текущий файл YAML для описания этих путей выглядит следующим образом:

swagger: '2.0' 
info: 
    version: '0.0.1' 
    title: Test API 
host: api.test.com 
basePath:/
schemes: 
    - https 
consumes: 
    - application/json 
produces: 
    - application/json 
paths: 
    /versions: 
    post: 
     responses: 
     '201': 
      description: Returns all versions. 
     default: 
      description: unexpected error 
    /partners/{partnerId}/users/{userId}/sessions: 
    parameters: 
     - name: partnerId 
     in: path 
     type: integer 
     - name: userId 
     in: path 
     type: string 
    post: 
     responses: 
     '201': 
      description: Returns a UserSession object with info about the user session. 
     default: 
      description: unexpected error 
    /partners/{partnerId}/books/{bookId}/: 
    parameters: 
     - name: partnerId 
     in: path 
     type: integer 
     - name: bookId 
     in: path 
     type: string 
    get: 
     responses: 
     '200': 
      description: Gets a book. 
     default: 
      description: unexpected error 

В этом файле YAML параметр "partnerId" объявляется дважды.

Есть ли способ сделать «подпуты» таким, что мне не нужно декларировать часть пути /partners/{partnerId} пути?

ответ

10

Что вы можете сделать, это объявить параметр на верхнем уровне, а затем обратиться к нему.

swagger: '2.0' 
info: 
    version: '0.0.1' 
    title: Test API 
host: api.test.com 
basePath:/
schemes: 
    - https 
consumes: 
    - application/json 
produces: 
    - application/json 
parameters: 
    partnerId: 
    name: partnerId 
    in: path 
    type: integer 
paths: 
    /versions: 
    post: 
     responses: 
     '201': 
      description: Returns all versions. 
     default: 
      description: unexpected error 
    /partners/{partnerId}/users/{userId}/sessions: 
    parameters: 
     - $ref: '#/parameters/partnerId' 
     - name: userId 
     in: path 
     type: string 
    post: 
     responses: 
     '201': 
      description: Returns a UserSession object with info about the user session. 
     default: 
      description: unexpected error 
    /partners/{partnerId}/books/{bookId}/: 
    parameters: 
     - $ref: '#/parameters/partnerId' 
     - name: bookId 
     in: path 
     type: string 
    get: 
     responses: 
     '200': 
      description: Gets a book. 
     default: 
      description: unexpected error 
Смежные вопросы