We covered topics such as content negotiation, API versioning, and REST response codes in this chapter. One of the primary takeaways from this chapter was to understand how important it is to support various representations of the same resource so that the client can choose the right one for their case. We covered differences between streaming and chunking output and how they can be used as lightweight options with custom entity providers such as
MessageBodyWriter. We saw case studies of companies that use versioning in their solutions as well as best practices and design principles scattered throughout the various topics.
The next chapter will cover advanced details such as security, traceability, and validation in ...