2

我正在使用swagger openapi 规范 3.0从我的界面生成 swagger。我有一个接受请求正文的删除方法。但根据RFC7231DELETE不接受任何请求正文。Swagger-request body也这么说。但我的 API 旨在接受 DELETE 操作中的请求正文。在创建 swagger 以使 DELETE 操作接受请求正文方面是否有任何解决方法。目前我从大摇大摆的一代中得到的错误是,

Sematic error: DELETE operations cannot have a requestBody
4

1 回答 1

4

不,您不能使用 OpenAPI 3.0 规范和 Swagger 工具来实现带有请求正文的 DELETE 请求。正如您正确指出的那样,HTTP RFC 说 DELETE 请求正文没有定义的语义(因此应该避免),并且 OpenAPI 3.0 特别禁止正文没有定义语义的 HTTP 方法中的正文。有关某些上下文,请参阅此讨论

考虑更改您的 API 设计,例如,将 DELETE 正文替换为路径、查询字符串或标头参数。查看RESTful Alternatives to DELETE Request Body以获得一些想法。

于 2019-03-04T10:12:22.817 回答