Skip to content
This repository was archived by the owner on Apr 1, 2025. It is now read-only.

Repository files navigation

# RestHalBundle

Bundle to manage Hal API with Symfony2.

## Installation

Edit your composer.json:

"require": {
"alterway/rest-hal-bundle" : "master"
}

And run Composer:

php composer.phar update alterway/rest-hal-bundle

Add the following line at the end of your autoload.php:

Doctrine\Common\Annotations\AnnotationRegistry::registerLoader(array($loader, 'loadClass'));

Enable your bundle in your AppKernel.php:

// app/AppKernel.phppublicfunctionregisterBundles()
{
$bundles = array(
// ...newAlterway\Bundle\RestHalBundle\AwRestHalBundle(),
);
}

Usage

Resource

A resource is a PHP class who represents informations about elements of your applications.

For example:

// src/Alterway/DemoBundle/ApiResource/UserResource.phpnamespaceAlterway\DemoBundle\ApiResource;
useAlterway\Bundle\RestHalBundle\ApiResource\Resource;
class UserResource extends Resource
{
publicfunction__construct(RouterInterface$router, User$user)
{
parent::__construct($router);
$this->user = $user;
}
protectedfunctionprepare()
{
$this->addLink('next', '/users?page=2');
$this->addLink('search', '/users?id={user_id}');
}
protectedfunctiongenerateUri()
{
return$this->router->generate('demo.user', array('id' => 1));
}
}

Controller

With annotations:

Remember to enable annotations :

sensio_framework_extra:
router: { annotations: true }
request: { converters: true }
view: { annotations: true }
cache: { annotations: true }
// some controller or yoursuseAlterway\DemoBundle\ApiResource\UserResource;
/** * @Hal(code="200") */publicfunctionuserWithAnnotateAction(Request$request)
{
$user = newUser;
returnnewUserResource($this->get('router'), $user);
}

Without annotations:

// some controller or yoursuseAlterway\Bundle\HalRestBundle\Response\HalResponse;
useAlterway\DemoBundle\ApiResource\UserResource;
publicfunctionuserWithoutAnnotateAction(Request$request)
{
$user = newUser;
$resource = newUserResource($this->get('router'), $user);
returnnewHalResponse($resource, 200);
}

## Contribute

Install dev dependencies:

php composer.phar update

Run Behat:

./vendor/bin/behat @AwRestHalBundle

Copyright

Copyright (c) 2013 La Ruche Qui Dit Oui!. See LICENSE for details.

Contributors

  • Jean-François Lépine (Halleck45)
  • Benoît Merlet (trompette)
  • Antoine Lévêque (gh0stonio)

Sponsors

About

Allow to manage HAL Rest API with Symfony2

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages