JSON Api ❤️ Doctrine ORM
JAD is a library created for rapid development of JSON API backend REST implementation. You can run JAD as a standalone server with php -S (see demo), or you can use it as a middleware in your framework.
It turns doctrine entities (doctrine/doctrine2) to a JSON API resource, or collection of resources automagically.
You need to have Doctrine installed and preferably setup before you can use Jad.
composer require oligus/jad
- Annotate your entities that you want to expose to JSON-API:
/**
* @ORM\Entity
* @ORM\Table(name="albums")
* @Jad\Map\Annotations\Header(type="albums")
*/
class Albums
{
...
- Setup JAD using current entity manager.
$jad = new Jad(new Jad\Map\AnnotationMapper($em));
$jad->setPathPrefix('/api/v1/jad');
$jad->jsonApiResult();
- Fetch results
GET /api/v1/jad/albums
Fetching resources with relationships
Deleting resources / relationships
Support for lumen via middleware.
In your Lumen bootstrap file (../lumen/bootstrap/app.php)
// Jad middleware
$app->middleware([
'jad' => Jad\Support\Lumen\JadMiddleWare::class,
]);
...
// Register Service Providers
$app->register(Jad\Support\Lumen\JadServiceProvider::class);
You can go with the default configuration or copy lumen/vendor/oligus/jad/src/Support/Lumen/jad.php
to /lumen/config
and change it there.
When contributing to this repository, please first discuss the change you wish to make via issue before making a pull request.
- Oli Gustafsson - Initial work - oligus
This project is licensed under the MIT License - see the LICENSE file for details