I was playing with one of the API deployment solutions that I track on, appropriately called API Platform. It is an open-source PHP solution for defining, designing, and deploying your linked data APIs. I thought their list of features provided a pretty sophisticated look at what an API can be, and was something I wanted to share.
This is what it says:
- Create a CRUD API in minutes.
- JSON-LD, Hydra, HAL native support.
- Automatic Swagger documentation.
- Built with Symfony and Doctrine.
- Docker integration.
- Data validation and error management.
- Pagination, filtering and sorting.
- Generate the data model using Schema.org.
- FOSUser, JWT, CORS, and OAuth support.
- Implements OWASP's recos.
- Designed for speed and caching.
- Behat, PHPUnit, and Postman spec and testing.
- 100% open source (MIT).
There are a couple of key elements here: API definition-driven with JSON-LD, Hydra, HAL, and OpenAPI Spec out-of-the-box. Containerized. Schema.org FTW! JWT, and OAuth. OWASP's security checklist. Postman ready! These features make for a pretty compelling approach to designing and deploying your APIs. While I see some of these features on other platforms, it is the first with an open-source solution possessing such an impressive resume.
I'm going to take this list and add to my list of API design and deployment building blocks in my research. These are features that other API deployment solutions should be considering as part of their offering. This approach to API deployment may not be the right answer for every type of API, but I know many data- and content-focused APIs that would benefit significantly from a deployment solution like API Platform.