testabit / restgeneratorbundle
REST API Generator for Symfony 2
Installs: 159
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 70
Type:symfony-bundle
Requires
- php: >=5.3.0
- friendsofsymfony/rest-bundle: 1.2.*@dev
- jms/serializer-bundle: 0.12.*@dev
- nelmio/cors-bundle: 1.2.*@dev
- symfony/serializer: 2.4.*
This package is not auto-updated.
Last update: 2025-03-29 17:45:38 UTC
README
About
A CRUD like REST Generator
Features
- Generators RESTful action from entity
- Simplifies setting up a RESTful Controller
Installation
Require the "voryx/restgeneratorbundle" package in your composer.json and update your dependencies.
$ php composer.phar require voryx/restgeneratorbundle dev-master
Add the VoryxRestGeneratorBundle to your application's kernel along with other dependencies:
public function registerBundles() { $bundles = array( //... new Voryx\RESTGeneratorBundle\VoryxRESTGeneratorBundle(), new FOS\RestBundle\FOSRestBundle(), new JMS\SerializerBundle\JMSSerializerBundle($this), new Nelmio\CorsBundle\NelmioCorsBundle(), //... ); //... }
Configuration
This bundle depends on a number of other symfony bundles, so they need to be configured in order for the generator to work properly
framework: csrf_protection: false #only use for public API fos_rest: routing_loader: default_format: json param_fetcher_listener: true body_listener: true #disable_csrf_role: ROLE_USER body_converter: enabled: true view: view_response_listener: force nelmio_cors: defaults: allow_credentials: false allow_origin: [] allow_headers: [] allow_methods: [] expose_headers: [] max_age: 0 paths: '^/api/': allow_origin: ['*'] allow_headers: ['*'] allow_methods: ['POST', 'PUT', 'GET', 'DELETE'] max_age: 3600 sensio_framework_extra: request: { converters: true } view: { annotations: false } router: { annotations: true }
Generating the Controller
Right now, the generator uses forms created by the doctrine generator. You must create these to use the generated controller. (If you don't create them prior to running the voryx:generate:rest command, you will get an error, but it will still work if you just create them afterwards)
$ php app/console doctrine:generate:form AcmeDemoBundle:Post
Generate the REST controller
$ php app/console voryx:generate:rest
This will guide you through the generator which will generate a RESTful controller for an entity.
You will still need to Add a route for each generated entity: (Hopefully this will be added to the generator soon)
api_posts: type: rest resource: "@AcmeDemoBundle/Controller/PostController.php" prefix: /api
Related Entities
If you want the form to be able to convert related entities into the correct entity id on POST, PUT or PATCH, use the voryx_entity form type
#Form/PostType() ->add( 'user', 'voryx_entity', array( 'class' => 'Acme\Bundle\Entity\User' ) )