This document discusses RESTful principles and how the Salesforce REST API implements and extends those principles. It begins by outlining Roy Fielding's definition of REST, including client-server architecture, statelessness, caching, uniform interface, layered system, and hypermedia as the engine of application state. It then demonstrates how the Salesforce REST API fulfills most of these principles through examples of retrieving and updating objects. However, it also presents two extensions - object trees and batch requests - that allow creating and manipulating multiple objects in one request, pushing the boundaries of the uniform interface principle. The document concludes by encouraging readers to carefully consider REST principles and only diverge from them when it meaningfully improves the experience.
Related topics: