API Platform is probably the most feature-rich, well... platform, to build robust API driven backends from REST services to GraphQL.
You can build a CRUD backend in minutes (with pagination, data validation, access control, relation embedding, filters and error handling...), or override and extend every element to make a custom API that suits your needs.
The project is lead by Kévin Dunglas from Les-Tilleuls.coop and being built on top of the Symfony PHP framework it proposes not only huge productivity benefits but also a breadth of support that is extremely interesting. You can use any of the thousands of Symfony bundles with API Platform.
You can design your own data model as plain old PHP classes or import an existing one from the Schema.org vocabulary.
To my knowledge, it is the only API framework that allows you to expose easily not only its default Linked Data (JSON-LD) and Hydra web standards but also GraphQL,HAL, YAML, JSON, XML and CSV out of the box through content negotiation.
And with Platform.sh the whole thing is even cooler; Because we support multi-application clusters you can rapidly embark on refactoring your good old monolith into an API driven application quicker than you could imagine.
To get you started, I've put a small repo on our GitHub examples. It is set up as a multi-application project where:
- the backend api application is running on PHP 7.1
- the frontend admin application is running on NodeJS 6.9 and is based on API Platform Admin.
Once you have followed the steps on the README.md, you should be able to access both the api URL and the admin URL provided by Platform.sh.
Platform.sh web UI showing the web and SSH URLs of the two applications:
API Platform Admin page:
API Platform API page: