Я использую редактор 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), а не оба. Может кто-то указать, где я иду не так? Благодарю.
Edit:
Если изменить второй /Login:
путь к (например) /Login1:
тогда я вижу оба пути в документации. Не решение.
Это также происходит со мной, что я мог бы указать один /Login:
путь с требуемым UserID
параметром и факультативных Password
и Token
параметров. Но как я могу указать, что должен быть указан ровно одинUserID
и Password
?
, связанные (или дубликат): [Как определить взаимоисключающие параметры запроса в Swagger (OpenAPI)?] (Https://stackoverflow.com/questions/21134029/how-to-define-between-exclusive-query-parameters-in-swagger-openapi) – Helen