Don't leave your software engineering career path to chance. Make sure you're interview-ready with Exponent's software developer interview prep course: bit.ly/3Cd56T5
0:30 #1 What is the difference between PUT, POST and PATCH? 1:22 #2 What is a payload in the context of a REST API? 1:47 #3 What is a REST message? 2:11 #4 What are the core components of an HTTP request? 2:59 #5 What are the core components of an HTTP response? 3:49 #6 What is an idempotent method and why are they important? 4:32 #7 What is the difference between idempotent and safe HTTP methods? 4:51 #8 Explain caching in a RESTful architecture
For "advanced", I'd expect more from the question on the difference between PUT, PATCH, and POST. POST requests the server create a new resource and respond with its newly created URI. PUT and PATCH will update, or MAY create, a resource at a specific URI. The difference being PUT replaces (overwrites) the resource and PATCH simply updates specific properties. It's important to note that PUT is the only true idempotent action of the three. PATCH may be idempotent but not always. It's also important to note that on PUT and PATCH operations, if the resource doesn't exist, the server MAY create the resource, but doesn't have to. This just depends on whether the service requires it creates URIs via POST or is OK with UTIs being created by PUT and PATCH requests. If the latter, handlers of those requests should validate if all fields required to create a resource are present before it creates the resource should it not exist. Most importantly, API developers should stop treating PUT like a PATCH operation which seems like common practice because GET, POST, PUT, and DELETE operations are too commonly likened to CRUD operations without the explanation of the differences. HTTP requests are an operation on the resource at a URI, not the datasource. It's not a 1:1 CRUD pass-through to the datasource, especially since URIs represent more than data in a datasource.
Thank you. It was really useful info to learn. Do you have any suggestions of some resources where one can learn more such in-depth info about REST-api ?
I really like your interpretation of the question "What is the difference between PUT and PATCH". It cleans, simplifies, and filters the gist! Repeat at your own discretion and memorize to reinforce the knowledge, in my opinion: Put: Overwrite all Patch: Change only necessary components and attributes
Best practices 1. Supporting JSON data transfer 2. Using proper status codes 3. Using URI hierarchy to represent the relationship between resources 4. Using idempotent HTTP methods 5. Using caching 6. Incorporating security measures
Thank you for answering these type questions…. I understand some people here in the comment section telling these are not advanced questions but people like me are still getting to know answers to these type of questions and they are useful..thank you..keeping making videos 🙏
Hey dirktrash3455! You are right in that RESTful APIs follow the statelessness principle, where the server doesn't store client-specific information between requests i.e. each request contains all necessary data. Caching, a performance optimization technique, stores and reuses previous responses. Therefore, caching does not violate the statelessness principle because the server's response itself is cached, not the server's state. Hope this helps!
Don't leave your software engineering career path to chance. Make sure you're interview-ready with Exponent's software developer interview prep course: bit.ly/3Cd56T5
0:30 #1 What is the difference between PUT, POST and PATCH?
1:22 #2 What is a payload in the context of a REST API?
1:47 #3 What is a REST message?
2:11 #4 What are the core components of an HTTP request?
2:59 #5 What are the core components of an HTTP response?
3:49 #6 What is an idempotent method and why are they important?
4:32 #7 What is the difference between idempotent and safe HTTP methods?
4:51 #8 Explain caching in a RESTful architecture
For "advanced", I'd expect more from the question on the difference between PUT, PATCH, and POST. POST requests the server create a new resource and respond with its newly created URI.
PUT and PATCH will update, or MAY create, a resource at a specific URI. The difference being PUT replaces (overwrites) the resource and PATCH simply updates specific properties.
It's important to note that PUT is the only true idempotent action of the three. PATCH may be idempotent but not always.
It's also important to note that on PUT and PATCH operations, if the resource doesn't exist, the server MAY create the resource, but doesn't have to. This just depends on whether the service requires it creates URIs via POST or is OK with UTIs being created by PUT and PATCH requests. If the latter, handlers of those requests should validate if all fields required to create a resource are present before it creates the resource should it not exist.
Most importantly, API developers should stop treating PUT like a PATCH operation which seems like common practice because GET, POST, PUT, and DELETE operations are too commonly likened to CRUD operations without the explanation of the differences.
HTTP requests are an operation on the resource at a URI, not the datasource. It's not a 1:1 CRUD pass-through to the datasource, especially since URIs represent more than data in a datasource.
Thank you. It was really useful info to learn. Do you have any suggestions of some resources where one can learn more such in-depth info about REST-api ?
I really like your interpretation of the question "What is the difference between PUT and PATCH". It cleans, simplifies, and filters the gist! Repeat at your own discretion and memorize to reinforce the knowledge, in my opinion:
Put: Overwrite all
Patch: Change only necessary components and attributes
Best practices
1. Supporting JSON data transfer
2. Using proper status codes
3. Using URI hierarchy to represent the relationship between resources
4. Using idempotent HTTP methods
5. Using caching
6. Incorporating security measures
Thank you for answering these type questions…. I understand some people here in the comment section telling these are not advanced questions but people like me are still getting to know answers to these type of questions and they are useful..thank you..keeping making videos 🙏
Short and sweet, love the fromat of your videos and thank you all the effort you put into them.
I wish I got these questions in an interview 😂
Awesome!! Precise defination. On point explanation
I think you should also mention that PUT method must be idempotent, while POST method may be not idempotent.
You are awesome! Keep up the great work💯
Thanks a lot. Super video.
Great tips!
Thanks bro,you explained very efficiently,keep working...
Golden content thank you
Great video! Thanks!!!
You said PUT is updating existing resource at 0:39, but in 1:00 you say PUT is replacing the entire resource vs PATCH. Seems contradicting
Thanks for sharing the knowledge
Great!
Awesome ❤
Great video! I did have a question, though: how does caching work when RESTful APIs are supposed to be stateless? Doesn't that violate that principle?
Hey dirktrash3455! You are right in that RESTful APIs follow the statelessness principle, where the server doesn't store client-specific information between requests i.e. each request contains all necessary data.
Caching, a performance optimization technique, stores and reuses previous responses. Therefore, caching does not violate the statelessness principle because the server's response itself is cached, not the server's state.
Hope this helps!
@@tryexponent That's very helpful, thanks!
cool, thnx
Good stuff!
what is meta data at 5:10 ? can anyone explain it ??
thank you! :")
Thanks :) good stuff.
Thank you
love it
❤
Good stuff
good rest api
Epic!
You should not do clickbait by saying Advanced Questions and just state plain basics.
Exponent is fake. You say advanced and talk about what is payload and all of your mock interviews are crap with bs candidates who are amateurs..
Thats not really advanced
because REST APIS are relatively simple
It's advanced for the author
im assuming the first question is to make sure the resume wasnt a lie lmao
Good explanation, but this is not advanced level...
u r right
Exponent is fake. You say advanced and talk about what is payload and all of your mock interviews are crap with bs candidates who are amateurs..
Thank you