Starting Engineering Quiz Section. I bring you a question related to Architecture, REST APIs, SOLID, anything that helps us reflect and debate!
The first one is about RESTful APIs 😄
Given a RESTful API and the sequence of Requests, which is the Status Code from the last call?
Some possible answers:
OK. 200
Bad Request. 400
Not Found. 404
Other
I will post the answer by Friday in the same Thread :D
For this scenario, the result can be either 200, as @Volodymyr shared, and 404, as Adrián Lizaga shared, because DELETE is an idempotent operation but the response can be different.
The GET, PUT, and DELETE methods are idempotent, meaning that applying them multiple times to resource results in the same state change of the resource as applying them once, though the response might differ
In case we are in a distributed system scenario, I prefer the 200 as a response code. Why? Because from the user's perspective, they want to delete an item. If for any reason the item is already deleted, it has the right response the system no longer contains that item.
Yet, if you compare the RESTful implementation to other Resource Containers such as Java Lists or SQL, you will find on them that, when you delete an item that doesn’t exist, the operation success and they don’t throw any exception.
So, why add the logic of failing to an operation when the other implementation doesn’t do and yet the final state is the desired state?
Engineering Quiz #1 - RESTful APIs
Starting Engineering Quiz Section. I bring you a question related to Architecture, REST APIs, SOLID, anything that helps us reflect and debate!
The first one is about RESTful APIs 😄
Given a RESTful API and the sequence of Requests, which is the Status Code from the last call?
Some possible answers:
OK. 200
Bad Request. 400
Not Found. 404
Other
I will post the answer by Friday in the same Thread :D
For this scenario, the result can be either 200, as @Volodymyr shared, and 404, as Adrián Lizaga shared, because DELETE is an idempotent operation but the response can be different.
Check out the Wikipedia's article here https://en.wikipedia.org/wiki/Representational_state_transfer#Semantics_of_HTTP_methods
It states:
In case we are in a distributed system scenario, I prefer the 200 as a response code. Why? Because from the user's perspective, they want to delete an item. If for any reason the item is already deleted, it has the right response
the system no longer contains that item
.Yet, if you compare the RESTful implementation to other Resource Containers such as Java Lists or SQL, you will find on them that, when you delete an item that doesn’t exist, the operation success and they don’t throw any exception.
So, why add the logic of failing to an operation when the other implementation doesn’t do and yet the final state is the desired state?
Create your profile
Only paid subscribers can comment on this post
Check your email
For your security, we need to re-authenticate you.
Click the link we sent to , or click here to sign in.