2014-11-26 4 views
30

Я пытаюсь создать чванство файл по следующему пути: пути: /v1/клиенты/{ID}/резюме:Сваггера: Проблема с параметром Path

Однако я получаю следующее сообщение об ошибке сразу летучей мыши :

API требует параметр пути, но он не определен: идентификатор на путях ▹/v1/клиентов/{ID}/резюме

это не похоже, как параметр 'ID'. Может ли кто-нибудь сказать мне, как я могу это исправить?

Если я детализировать на этом я вижу следующее:

Details 
Object 
swaggerError: Object 
errors: Array [1] 
0: Object 
code: "MISSING_API_PATH_PARAMETER" 
message: "API requires path parameter but it is not defined: id" 
data: "/v1/customers/{id}/summary" 
path: Array [2] 
warnings: Array [0] 
+0

Какую версию Swagger вы используете? Как вы создаете свою спецификацию? – Ron

+0

Я использую Swagger 2.0. Я создаю свой spec из командной строки из Apigee_127 и заполняя файл YAML, созданный в редакторе. Надеюсь, что ответит на вопрос. – user2825273

+0

Если я развернусь по ошибке, я получаю следующее: – user2825273

ответ

68

В принципе, вы объявляя путь, который имеет параметр пути в нем, используя шаблоны путей. В этом случае {id} объявляет параметр пути id.

Когда вы объявляете такой путь, это означает, что вы должны до объявить этот параметр пути как часть операции.

Взгляните на этот пример YAML:

/pets/{id}: 
    get: 
     description: Returns a user based on a single ID, if the user does not have access to the pet 
     operationId: findPetById 
     produces: 
     - application/json 
     - application/xml 
     - text/xml 
     - text/html 
     parameters: 
     - name: id 
      in: path 
      description: ID of pet to fetch 
      required: true 
      type: integer 
      format: int64 
     responses: 
     '200': 
      description: pet response 
      schema: 
      $ref: '#/definitions/pet' 
     default: 
      description: unexpected error 
      schema: 
      $ref: '#/definitions/errorModel' 

Вы можете увидеть там в пути {id}, и соответствующее определение id параметра. Без него спецификация не будет действительна.

+0

Спасибо большое за понимание, которое это помогло! – user2825273

+1

Также обратите внимание, что требуется обязательное условие, и для этого требуется установить значение true –

+0

. Я не хочу, чтобы вы научили меня проектировать api. но чванство здесь, безусловно, глупо. – gouchaoer

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