The API Platform Core Library

API Platform Core is an easy to use and powerful library to create hypermedia-driven REST APIs. It is a component of the API Platform framework. It can be used standalone or with the Symfony framework (recommended).

It embraces JSON for Linked Data (JSON-LD) and Hydra Core Vocabulary web standards.

Build a working and fully-featured CRUD API in minutes. Leverage the awesome features of the tool to develop complex and high performance API-first projects.

If you are starting a new project, the easiest way to get API Platform up is to install the API Platform Standard Edition.

JSON-LD enabled


Here is the fully-featured REST API you’ll get in minutes:

  • CRUD support through the API for Doctrine entities: list, GET, POST, PUT and DELETE
  • Hypermedia implementing JSON-LD
  • Machine-readable documentation of the API in the Hydra format, guessed from PHPDoc, Serializer, Validator and Doctrine ORM metadata
  • Human-readable Swagger-like documentation including a sandbox automatically generated thanks to the integration with NelmioApiDoc
  • Pagination (compliant with Hydra)
  • List filters (compliant with Hydra)
  • Validation using the Symfony Validator Component, with groups support
  • Errors serialization (compliant with Hydra)
  • Custom serialization using the Symfony Serializer Component, with groups support and the possibility to embed relations
  • Automatic routes registration
  • Automatic entrypoint generation giving access to all resources
  • \DateTime serialization and deserialization
  • FOSUserBundle integration (user management)
  • Easy installation thanks to API Platform

Everything is fully customizable through a powerful event system and strong OOP. This bundle is extensively tested (unit and functionnal). The Fixtures/ directory) contains a working app covering all features of the library.

Screenshot of ApiBundle integrated with NelmioApiDocBundle

Other resources

Previous chapter: API Platform Distribution: Testing and Specifying the API

Next chapter: Getting Started

 Edit on GitHub