Редактор Swagger создает неправильный путь для конечной точки Rest - PullRequest
0 голосов
/ 06 мая 2020

Итак, мне нужно воссоздать конечные точки отдыха с помощью Swagger. Для этого я использую редактор Swagger в editor.swagger.io

Чтобы вызвать мою фактическую конечную точку отдыха, мне нужен этот путь: http://localhost:8080/phonenumbersmanagement/api/v1/areacodes/1

К сожалению, редактор Swagger создает аналогичный путь, который я не могу использовать: http://localhost:8080/phonenumbersmanagement/api/v1/areacodes?id=1

Это GET-запрос. Я получаю 405 - Method not allowed

Мой код в редакторе Swagger выглядит так:

/areacodes:
    post:
      tags:
      - "areacode"
      summary: "Add AreaCode"
      description: ""
      operationId: "addAreaCode"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        description: "add areacode"
        required: true
        schema:
          $ref: "#/definitions/AreaCode"
      responses:
        "405":
          description: "Invalid input"
    get:
      tags:
      - "areacode"
      summary: "Get Areacode"
      description: ""
      operationId: "getAreaCodeById"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "query"
        description: "Status values that need to be considered for filter"
        required: true
        type: "integer"
        format: "int32"
      responses:
        "200":
          description: "successful operation"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/AreaCode"
        "400":
          description: "Invalid status value"

Кто-нибудь знает, как это исправить?

1 Ответ

1 голос
/ 06 мая 2020

В .../areacodes/1, 1 - это параметр пути , поэтому параметр должен быть определен как in: path, а не in: query. Кроме того, конечные точки с параметрами пути должны быть определены с использованием шаблонов пути - .../areacodes/{id}, где {id} представляет параметр пути с именем id.

Имея это в виду, ваша операция GET должна быть определена следующим образом :

paths:
  /areacodes/{id}:  # <------
    get:
      ...
      parameters:
      - name: "id"
        in: path    # <------
        description: "Status values that need to be considered for filter"
        required: true
        type: "integer"
        format: "int32"
...