elements icon indicating copy to clipboard operation
elements copied to clipboard

TryIt doesn't send request body for DELETE requests

Open iamhosseindhv opened this issue 1 year ago • 3 comments

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

  • Version used:
  • Environment name and version (e.g. Chrome 39, node.js 5.4):
  • Operating System and version (desktop or mobile):
  • Link to your environment/workspace/project:

iamhosseindhv avatar Sep 05 '22 14:09 iamhosseindhv

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

mnaumanali94 avatar Sep 08 '22 17:09 mnaumanali94

@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

philsturgeon avatar Oct 05 '22 09:10 philsturgeon

Any updates on this?

Invincibear avatar Feb 16 '24 02:02 Invincibear