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.
- 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
- Modular
- Designed for speed and caching
- Behat, PHPUnit and Postman spec & 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 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 in 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 thatwouldl benefit significantly from a deployment solution like API Platform.