, (*1)
The new breed of web frameworks, (*2)
, (*3)
The official project documentation is available [on the API Platform website][31]., (*4)
API Platform is a next-generation PHP web framework designed to create
API-first projects easily but without compromise in the field of extensibility and
flexibility:, (*5)
- Use our awesome code generator to bootstrap a fully-functional data model from
Schema.org vocabularies with ORM mapping and validation (you can also do
it manually)
-
Expose in minutes an hypermedia REST API that works out of the box by reusing
entity metadata (ORM mapping, validation and serialization) ; that embraces JSON-LD,
Hydra and provides a ton of features (CRUD, validation and error handling,
relation embedding, filters, ordering...)
- Enjoy the beautiful automatically generated API documentation (Swagger-like)
- Add easily JSON Web Token or OAuth authentication
- Create specs and tests with a developer friendly API context system on top
of Behat
- Develop your website UI, webapp, mobile app or anything else you want using
your preferred client-side technologies! Tested and approved with AngularJS
(integration included), Ionic, React and native mobile apps
API Platform embraces open web standards (JSON-LD, Hydra, JWT, OAuth,
HTTP, HTML5...) and the Linked Data movement. Your API will automatically
expose structured data in Schema.org/JSON-LD. It means that your API Platform application
is usable out of the box with technologies of the semantic
web., (*6)
It also means that your SEO will be improved because Google recommends these
formats.
And yes, Google crawls full-Javascript applications as well as old-fashioned ones., (*7)
Last but not least, API Platform is built on top of the Symfony
full-stack framework and follows its best practices. It means than you can:, (*8)
- use thousands of Symfony bundles with API Platform
- integrate API Platform in any existing Symfony application
- reuse all your Symfony skills and benefit of the incredible
amount of Symfony documentation available
- enjoy the popular Doctrine ORM (used by default, but fully optional: you can
use the data provider you want, including but not limited to MongoDB ODM and ElasticSearch)
Install
Use Composer to create your new project:, (*9)
composer create-project api-platform/api-platform my-api
Start to hack
A demo application (a bookstore) is pre-installed., (*10)
- Run
app/console server:start
and open http://localhost:8000
in any
HTTP client to access the API
- Open
http://localhost:8000/doc
to read the HTML documentation an play
with the sandbox
- Give a try to the HydraConsole client to leverage JSON-LD and Hydra
features
- Build your first custom client using Javascript, CORS headers are already
configured
What's inside?
API Platform provides rock solid foundations to build your project:, (*11)
-
The Schema Generator to generate PHP entities from Schema.org types with
Doctrine ORM mappings, Symfony validation and extended PHPDoc
-
The API bundle to expose in minutes your entities as a JSON-LD and
Hydra enabled hypermedia REST API
-
NelmioApiDocBundle integrated with the API bundle to
automatically generate a beautiful human-readable documentation and a
sandbox to test the API
-
Behat and Behatch configured to easily test the API
- The full power of the Symfony framework and its ecosystem
- Doctrine ORM/DBAL
- An AppBundle you can use to start coding
- Annotations enabled for everything
- Swiftmailer and Twig to create beautiful emails
It comes pre-configured with the following bundles:, (*12)
-
Symfony - API Platform is built on top of the full-stack
Symfony framework
-
API Platform's API bundle - Creates powerful Hypermedia APIs supporting JSON-LD
and Hydra
-
NelmioCorsBundle - Support for CORS headers
-
NelmioApiDocBundle - Generates a human-readable documentation
-
FosHttpCacheBundle - Add powerful caching capacities, supports Varnish,
Nginx a built-in PHP reverse proxy
-
SensioFrameworkExtraBundle - Adds several enhancements, including
template and routing annotation capability
-
DoctrineBundle - Adds support for the Doctrine ORM
-
TwigBundle - Adds support for the Twig templating engine (useful
in emails)
-
SecurityBundle - Authentication and roles by integrating Symfony's
security component
-
SwiftmailerBundle - Adds support for Swiftmailer, a library for sending
emails
-
MonologBundle - Adds support for Monolog, a logging library
-
WebProfilerBundle (in dev/test env) - Adds profiling functionality and
the web debug toolbar
-
SensioDistributionBundle (in dev/test env) - Adds functionality for configuring
and working with Symfony distributions
-
SensioGeneratorBundle (in dev/test env) - Adds code generation capabilities
All libraries and bundles included in API Platform are released under
the MIT or BSD license., (*13)
Authentication support
Json Web Token is a lightweight and popular way to handle authentication in a
stateless way. Install LexikJWTAuthenticationBundle to adds JWT support
to API Platform., (*14)
Oauth support can also be easily added using FOSOAuthServerBundle., (*15)
Verifying release signature
Software released by the API Platform project can be verified with git
using the following GPG public signature:, (*16)
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
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
xA==
=RO9E
-----END PGP PUBLIC KEY BLOCK-----
Enjoy!, (*17)
Credits
Created by Kévin Dunglas. Sponsored by Les-Tilleuls.coop
Commercial support available upon request., (*18)