Swagger openApi Spec 3.0 - 删除操作

Ara*_*nth 3 swagger openapi swagger-3.0

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

Sematic error: DELETE operations cannot have a requestBody
Run Code Online (Sandbox Code Playgroud)

Hel*_*len 8

不可以,您不能使用 OpenAPI 3.0 规范和 Swagger 工具来实现带有请求正文的 DELETE 请求。正如您正确指出的那样,HTTP RFC 表示 DELETE 请求主体没有定义的语义(因此应该避免),并且 OpenAPI 3.0 特别禁止 HTTP 方法中的主体没有定义的语义。请参阅此讨论以了解一些背景信息。

考虑更改您的 API 设计,例如,将 DELETE 正文替换为路径、查询字符串或标头参数。查看DELETE 请求正文的 RESTful 替代方案以获取一些想法。