stoplightio / elements

Build beautiful, interactive API Docs with embeddable React or Web Components, powered by OpenAPI and Markdown.
https://stoplight.io/open-source/elements/
Apache License 2.0
1.71k stars 197 forks source link

TryIt doesn't send request body for DELETE requests #2230

Open iamhosseindhv opened 2 years ago

iamhosseindhv commented 2 years ago

Context

When making an api request with method DELETE which has some body, the body is not sent. This seems to be intentional as per these lines: https://github.com/stoplightio/elements/blob/b20ba4422985ff35617171ec72103719fe3aa2b6/packages/elements-core/src/components/TryIt/build-request.ts#L66

Current Behavior

As explained above

Expected Behavior

Request body should be sent for DELETE requests. It's worth noting that DELETE requests with request body is NOT against the specs. There might be many legacy apis that developers are documenting, which may have a DELEET endpoint with request body. Open Api Spec also supports DELETE requests with body. https://spec.openapis.org/oas/v3.1.0#version-3-1-0

Screenshot 2022-09-05 at 15 22 20

Related issues on OAS: https://github.com/OAI/OpenAPI-Specification/issues/1801, https://github.com/OAI/OpenAPI-Specification/pull/2117

Steps to Reproduce

  1. Use try-it widget to make a DELETE request with request body. Note how in the screenshot below, it is documented that the endpoint accepts some body, but "Request Sample" does not reflect the same
Screenshot 2022-09-05 at 15 23 51

Environment

mnaumanali94 commented 2 years ago

We can potentially create a rule in Spectral to warn users but support it in the docs.

philsturgeon commented 1 year ago

@mnaumanali94 I agree, thats a good way to split it. When there is a SHOULD that means people could. Spectral can help make things better, and Elements should show whatever it understands regardless of opinion. IMO. :D

Invincibear commented 7 months ago

Any updates on this?