Dig deeper into the subtle differences between POST, PUT, and PATCH, and learn when and why to support each method in your API.
- [Instructor] Besides the constraints that the HTTP spec puts on the methods used for full and partial updates, it's worth taking a closer look at the semantics of how updates can be handled in a restful API. If we compare the three HTTP methods that can be used for updates, we can see that POST can technically be used for both full and partial updates. But, only PUT can do Idempotent full updates. And PATCH is limited to only doing partial updates. According to the HTTP only POST returns a response body. PUT and PATCH just return a header like 201 created or 204 no content.
A common pattern of restful APIs is to send the created or updated resource to the client in the body of the response. Which fits the spec of POST, but not PUT or PATCH. The differences between these methods lead to a couple of common scenarios. One approach is to use all three verbs. POST for creating, PUT for full updates, and PATCH for partial updates. This approach most closely sticks to the HTTP spec. The downside is that there are a lot of code paths to support, and not all APIs need to distinguish between partial and full updates.
Another approach is to keep it simple. Use POST for both creating and updating resources. This means that all updates are treated as partial updates and are not idempotent. This can be simpler for your clients as it doesn't require the client to decide whether to send a partial or full update. Depending on what you need your API to be able to do, you could choose either approach or a combination of the above. In the sample API we'll build for Landon Hotel's in this course, I think approach number two makes the most sense. It's simple and while the API needs to handle partial updates, it doesn't really have a strong need for full updates.
Now, that we've thoroughly exhausted the topic of HTTP methods, let's move on to the topic of how to model the responses from our API.
- What is RESTful design?
- Building a new API with ASP.NET Core
- Using HTTP methods
- Returning JSON
- Creating RESTful routing with templates
- Securing RESTful APIs with HTTPS
- Representing resources
- Representing links
- Representing collections
- Sorting and searching collections
- Building forms
- Adding caching to an ASP.NET Core API
- Configuring user authentication and authorization
Skill Level Intermediate
1. REST API Concepts
2. Build a Basic API
3. Versioning and Errors
4. Secure the API
5. Represent Resources
6. Represent Links
7. Represent Collections
Add pagination7m 37s
8. Sorting Collections
9. Searching Collections
10. Forms and Modifying Data
11. Caching and Compression
12. Authentication and Authorization
- Mark as unwatched
- Mark all as unwatched
Are you sure you want to mark all the videos in this course as unwatched?
This will not affect your course history, your reports, or your certificates of completion for this course.Cancel
Take notes with your new membership!
Type in the entry box, then click Enter to save your note.
1:30Press on any video thumbnail to jump immediately to the timecode shown.
Notes are saved with you account but can also be exported as plain text, MS Word, PDF, Google Doc, or Evernote.