Почтовое приложение Swagger OpenAPI / json без requestbody

Мой API использует запросы только с Header - Content-type:application/json объектом.

Для того же я использую:

 @OA\RequestBody(
    description= "Provide company search parameter",
    required= true,
    @OA\JsonContent(
        type="object",
        @OA\Property(property="company_name", type="string")
    )
 )

Но для некоторых запросов мне не нужен RequestBody, только обращаюсь к ресурсу и получаю данные. Как мне это сделать без RequestBody?

P.S. Для этого запроса требуется метод GET (можно использовать POST, если это поможет), но GET не принимает RequestBody.


person abhig10    schedule 05.02.2019    source источник


Ответы (1)


Этот случай не может быть описан с помощью OAS 3.0, и ограничение на GET requestBodies состоит в том, чтобы избежать попыток описать поведение API, которое, как указано в спецификации HTTP, не определено. Ограничение на указание Content-Type в качестве заголовка, определяемого «вручную», также призвано гарантировать отсутствие двусмысленности в отношении того, какой механизм должен устанавливать этот заголовок.

https://github.com/OAI/OpenAPI-Specification/issues/1628

Когда клиент отправляет заголовок Content-Type, он используется для описания тела запроса (а не ответа)

Чтобы повлиять на тип ответа, клиент может отправить Accept заголовок.
Например: Accept: application/json

person Bob Fanger    schedule 28.02.2019
comment
Спасибо. Я просто изменил все свои API для публикации. - person abhig10; 11.03.2019