Chapter 13. RESTful Data with Flask

In “A Simple Data API with Flask”, we saw how to build a very simple data API with Flask and Dataset. For many simple data visualizations this kind of quick and dirty API is fine, but as the data demands become more advanced it helps to have an API that respects some conventions for retrieval and, sometimes, creation, update and delete.1 In “Using Python to Consume Data from a Web API”, we covered the types of web API and why RESTful2 APIs are acquiring a well-deserved prominence. In this chapter, we’ll see how easy it is to combine a few Flask libraries into a flexible RESTful API.

The Tools for a RESTful Job

As seen in “A Simple Data API with Flask”, the basics of a data API are pretty simple. It needs a server, which accepts HTTP requests such as GET to retrieve or more advanced verbs like POST (to add) or DELETE. These requests are on routes like api/winners that are then dealt with by functions provided. In these functions data is retrieved from a backend database, possibly filtered using data parameters (e.g., strings like ?category=comic&name=Groucho appended to the URL calls). This data then needs to be returned or serialized in some requested format, pretty much always JSON-based. For this round trip of data, the Flask/Python ecosystem provides some perfect libraries:

  • Flask to do the server work

  • Flask SQLAlchemy, a Flask extension that integrates SQLAlchemy, our preferred Python SQL library with object-relational ...

Get Data Visualization with Python and JavaScript, 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.