Appendix F. Building a REST API: JSON, Ajax, and Mocking with JavaScript
Representational State Transfer (REST) is an approach to designing a web service to allow a user to retrieve and update information about âresourcesâ. Itâs become the dominant approach when designing APIs for use over the web.
Weâve built a working web app without needing an API so far. Why might we want one? One motivation might be to improve the user experience by making the site more dynamic. Rather than waiting for the page to refresh after each addition to a list, we can use JavaScript to fire off those requests asynchronously to our API, and give the user a more interactive feeling.
Perhaps more interestingly, once weâve built an API, we can interact with our back-end application via other mechanisms than the browser. A mobile app might be one new candidate client application, another might be some sort of command-line application, or other developers might be able to build libraries and tools around your backend.
In this chapter weâll see how to build an API âby handâ. In the next, Iâll give an overview of how to use a popular tool from the Django ecosystem called Django-Rest-Framework.
Our Approach for This Appendix
I wonât convert the entirety of the app for now; weâll start by assuming we have an existing list. REST defines a relationship between URLs and the HTTP methods (GET and POST, but also the more funky ones like PUT and DELETE) which will guide us in our design.
Get Test-Driven Development with Python, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.