trivago / jade
A simple but yet powerful library to expose your entities through JSON API.
Installs: 2 139
Dependents: 0
Suggesters: 0
Security: 0
Stars: 54
Watchers: 8
Forks: 6
Open Issues: 5
Requires
- doctrine/doctrine-bundle: ^1.6
- doctrine/orm: ^2.5
- neomerx/json-api: ^1.0
- symfony/symfony: ^3.0
Requires (Dev)
- codeception/codeception: ^2.3
- fzaninotto/faker: ^1.7
- php-di/phpdoc-reader: ^2.0
- phpspec/prophecy: ^1.7
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2025-03-30 05:09:06 UTC
README
What is it?
Jade is a library created in an effort to create a simple way to create Json API server using doctrine entities. It supports all the CRUD functionality like filtering, sorting and including relationships. You just define the entities then using the configuration expose different routes.
It is done in a way to be easy to customize any part you need.
Another library?
Before starting developing this library we went through other available libraries even thinking about contributing to them. But the issue was that customizing those libraries to our needs was complicated and sometimes needed too much effort to even set it up. In case of Jade in 5 minutes you can have a fully functional API running.
Getting started
You can find a quick start example in docs/example.md
First install the library:
composer require trivago/jade
Next add the bundle to the kernel:
<?php public function registerBundles() { $bundles = [ ... new Trivago\Jade\Application\Framework\JadeBundle\TrivagoJadeBundle(), ... ]; }
And then add the routing
json_api_routes: prefix: /api resource: . type: json_api
And then you have to setup the configuration.
Configuration
Example configuration
Entities
Loading the routes
Filtering
Sorting
Including
Listeners
Example calls
Security concerns
Tests
Missing features
- Allow choosing which fields to be included.
- Validate the request for extra keys that are not valid.
- Create the relationship urls.
- Contain for a path that is string works fine. Find a new filter type name for path being an array that contains value.
- [IMPROVED] Use ResourceMapper to avoid filtering or sorting on columns that are not rendered [security]