Я использую редактор swagger для документирования существующего API, который позволяет пути поддерживать два разных запроса, которые отличаются только именами параметров запроса. Например:
swagger: '2.0'
info:
title: example
version: 1.0.0
host: example.com
schemes:
- http
basePath: /WS
paths:
/Login:
post:
summary: Login
description: |
Log in
parameters:
- name: UserID
in: query
description: User ID
required: true
type: string
- name: Password
in: query
description: User password
required: true
type: string
responses:
'200':
description: Success
/Login:
post:
summary: Login
description: |
Log in
parameters:
- name: UserID
in: query
description: User ID
required: true
type: string
- name: Token
in: query
description: Authentication token
required: true
type: string
responses:
'200':
description: Success
Здесь я поддерживаю запросы к http://example.com/WS/Login?UserID=foo&Passoword=bar
и http://example.com/WS/Login?UserID=foo&Token=dubdu22r8dwjgd767dg
.
Редактор swagger не показывает никаких ошибок для приведенного выше yaml, но создает документацию только для второго пути (того, который имеет параметры запроса UserId и Token), а не для обоих. Может ли кто-нибудь указать, где я ошибаюсь? Спасибо.
Изменить:
Если я изменю второй путь /Login:
на (например) /Login1:
, то я увижу оба пути в документации. Хотя не решение.
Мне также приходит в голову, что я мог бы указать один путь /Login:
с обязательным параметром UserID
и необязательными параметрами Password
и Token
. Но как указать, что должен быть указан ровно один из UserID
и Password
?