In the chapter, we saw how we can make use of JWTs to authenticate our endpoints without the need for human interaction.
We now know how to use the Data Validation API to perform automatic model validation. Then, we learned that content negotiation can be useful if you wish to return data in different formats; but, in reality, JSON is the de facto standard for data exchange over the web these days.
The OpenAPI specification is also helpful in development mode to inspect your endpoints and issue requests against them.
Next, we saw that OData is a great addition to ASP.NET Core, especially when integrated with EF Core or any other data provider that exposes data as IQueryable<T>.
In this chapter, we also learned how REST is implemented in ASP.NET Core to expose APIs. We looked at how to carry out model binding and validate data before this. We were also introduced to the JWT mechanism for authorizing endpoints and how to carry out versioning...