In this chapter, we expanded the capabilities of the previous version of the RESTful API that we created in the previous chapter. We used SQLAlchemy as our ORM to work with a PostgreSQL database. We installed many packages to simplify many common tasks, wrote code for the models and their relationships, and worked with schemas to validate, serialize, and deserialize these models.
We combined blueprints with resourceful routing and were able to generate the database from the models. We composed and sent many HTTP requests to our RESTful API and analyzed how each HTTP request was processed in our code and how the models persisted in the database tables.
Now that we built a complex API with Flask, Flask-RESTful, and SQLAlchemy, we will use additional features and add security and authentication, which is what we are going to discuss in the next chapter.