oligus/jad

Json Api to Doctrine ORM

v1.1.6 2020-06-06 19:54 UTC

README

JSON Api ❤️ Doctrine ORM

Build Status License: MIT Codecov.io Maintainability

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.

Requirements

You need to have Doctrine installed and preferably setup before you can use Jad.

Install

composer require oligus/jad

Quick start

  1. 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
{
...
  1. Setup JAD using current entity manager.
$jad = new Jad(new Jad\Map\AnnotationMapper($em));
$jad->setPathPrefix('/api/v1/jad');
$jad->jsonApiResult();
  1. Fetch results
GET /api/v1/jad/albums

Contents

Configure

Mapping your entities

Fetching the resources

Fetching resources with relationships

Creating a new resource

Updating a resource

Deleting resources / relationships

Validation

Support

Lumen

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.

Contributing

When contributing to this repository, please first discuss the change you wish to make via issue before making a pull request.

Authors

  • Oli Gustafsson - Initial work - oligus

License

This project is licensed under the MIT License - see the LICENSE file for details