OAGi / Score

Score
MIT License
9 stars 6 forks source link

DELETE verb expressionm has no request body or responses #1610

Open dubnemo opened 8 months ago

dubnemo commented 8 months ago

@hakjuoh @elena-jelisic It may be worthwhile to export the repo from oagiscore.net and import into test.oagiscore.net to see if the latest code does NOT have this exception. Ideally before the 3.2.2 release.

I am wondering if the DELETE verb logic is correct in the latest code.

image

dubnemo commented 8 months ago

FYI only

The request body applicable for this operation. The requestBody is fully supported in HTTP methods where the HTTP 1.1 specification RFC7231 has explicitly defined semantics for request bodies. In other cases where the HTTP spec is vague (such as GET, HEAD and DELETE), requestBody is permitted but does not have well-defined semantics and SHOULD be avoided if possible.

hakjuoh commented 8 months ago

FYI only

The request body applicable for this operation. The requestBody is fully supported in HTTP methods where the HTTP 1.1 specification RFC7231 has explicitly defined semantics for request bodies. In other cases where the HTTP spec is vague (such as GET, HEAD and DELETE), requestBody is permitted but does not have well-defined semantics and SHOULD be avoided if possible.

@dubnemo It's true only if it is in OpenAPI v3.1.0, but not in v3.0.3. Here's the requestBody definition of the operation object in v3.0.3 (link).

The request body applicable for this operation. The requestBody is only supported in HTTP methods where the HTTP 1.1 specification [RFC7231] has explicitly defined semantics for request bodies. In other cases where the HTTP spec is vague, requestBody SHALL be ignored by consumers.

They updated the definition through the OpenAPI spec issue #1801.

I've checked the current logic, and it allows only Response message type for the DELETE operation. If you remove the DELETE Request item, you will be able to see the responses. Please let us know if you have any idea to resolve this.

@kbserm @elena-jelisic

dubnemo commented 8 months ago

@hakjuoh @kbserm We need to discuss in today's call.
If you sticking with 3.0.3, then the message type droplist should not allow the request option.
But if you dig into Stack Overflow and other forums, the reason it was added into v3.1 is because there ARE valid semantic use cases, in this case to delete specific lines of a shipment (shipped-item-instances). And that the HTTP specification is outdated with the advancements in REST protocols.

In addition to the more detail on callback interfaces (webhooks), I would contend this is one of the major benefits of 3.1.
@elena-jelisic @sfohn @jim-wilson-kt

hakjuoh commented 8 months ago

@dubnemo I understand. However, version 3.1.0 has not only changed that part but also upgraded the JSON schema from Draft 4 to Draft 2020-12, which includes changes in data types and introduced some additional properties. This will require more time. I suggest that the request option for the DELETE operation not be allowed for now.