Swagger openApi Spec 3.0 - УДАЛИТЬ работу

Я использую Swagger OpenAPI спецификации 3.0 для генерации Swagger из моего интерфейса. У меня есть метод удаления, где он принимает тело запроса. Но согласно RFC7231, DELETE не принимает тело запроса. Также Swagger-тело запроса говорит, что так. Но мой API предназначен для принятия тела запроса в операции DELETE. Есть ли обходной путь в создании swagger, чтобы операция DELETE принимала тело запроса. В настоящее время какая ошибка я получаю от генерации чванства,

Sematic error: DELETE operations cannot have a requestBody

2 ответа

Нет, вы не можете использовать инструменты спецификации OpenAPI 3.0 и Swagger для реализации запросов DELETE с телом запроса. Как вы правильно указали, в HTTP RFC говорится, что тело запроса DELETE не имеет определенной семантики (и, следовательно, его следует избегать), а OpenAPI 3.0 специально запрещает тела в методах HTTP, где тело не имеет определенной семантики. Смотрите это обсуждение для некоторого контекста.

Рассмотрите возможность изменения дизайна API, например, замените тело DELETE на путь, строку запроса или параметры заголовка. Проверьте RESTful альтернативы DELETE тело запроса для некоторых идей.

Этот тип операций (запросы DELETE, GET с телом) был явно запрещен в Open API 3.0. До этого было разрешено или расплывчато.

Другие вопросы по тегам