How To Build An API? A Developer’s Guide To API Platform

In the article, I will introduce how to quickly and easily create an API using Symfony and the API platform. This library provides fully functional CRUD, pagination, validation, and documentation it allows the use of GraphQL. Below I’ll show you how the API platform works using a simple application example.

Guide to API platform

Installation

The easiest way to start working with the API platform is to download a ready-made package from GitHub. It contains all the necessary components you need to create your first project. After unpacking the content and running it with docker-compose up the complete development environment will start.

  • php container with PHP 7.2 and composer
  • db container with PostgreSQL database
  • Client a container with the front-end part of the application contains a welcome page by default
  • Cache-proxy container with proxy for API
  • h2-proxy http/2 and https for all applications it should only be used for development purposes.

Model

We’ll start by creating classes to represent each of the application’s elements. We then map these classes to the database and use the annotation provided by the Doctrine ORM. It will consist of basic user information: name and email. Therefore, it is worth making sure that the model implements the user interface and contains all the necessary fields.

CRUD

It is necessary to inform the API platform library which models should be considered as API elements. It is possible to do this using XML, yaml or annotation. I decided to use the last method.

Serialization groups

They require accurate information about the fields that will be entered and presented. While normalization, denormalization, API Platform uses symfony, serializer. You can use this to change the presentation form of objects.

Validation

The application will begin to take shape. If you enter incorrect values ​​when creating new registries  the application returns an error instead of letting us know that the value is incorrect.

Configuration of available actions

The API platform allows us to manage available endpoints in a simple way. They are grouped into two types of operations. The first group refers to operations performed on a collection of objects or the creation of a new element. A different type of operation is always related to a certain element and this element must be marked.

Embedded links

The API should allow the user to get lessons that belong to a particular subject and flashcards that belong to a particular lesson. The API platform allows for quick preparation of endpoints that come with the necessary data.

Conclusion

I covered how to create an API and showed some of the basic functionality of the API. In the application, it is possible to create new cards, lessons, subjects and new users.