Skip to content

php - zfcampus/zf-rest how to | tutorial

Assuming you are using the Zend Framework 2 and want to implement a REST endpoint in a quick and fully functional way.
ZF-Rest is, more or less, the official rest module for zf2. But, the documentation is not available - nor planned right now. Thats why I this blog entry will boost your knowledge and speed up the time until you have finished your first zf2 rest endpoint.

Installation and Setup


#add the following line to you composer.json
"zfcampus/zf-rest": "1.0.3"

You need to add the following entries in your to "config/autload/application.config".


 array(
        //your modules
        'ZF\ApiProblem',
        'ZF\ContentNegotiation',
        'ZF\Hal',
        'ZF\MvcAuth',
        'ZF\OAuth2',
        'ZF\Rest'
    );

Minimal Configuration (module.config.php)

array key "zf-rest"


//MyRestController is a virtual Controller 
'My\\Module\\Namespace\\MyRestController' => array(
    //mandatory - available are GET, POST, PUT, PATCH, DELETE
    'collection_http_methods'       => array(
        'GET'
    ),
    //mandatory - available are GET, POST, PUT, PATCH, DELETE
    'entity_http_methods'           => array(
        'GET'
    ),
    //virtual name - its the name the collection entries are getting in the HAL-repesentation
    'collection_name'               => 'items',
    'route_name'                    => 'my_rest_route_name',
    'route_identifier_name'         => 'id',
    //this is the only file you really need to code/implement
    'listener'                      => 'My\\Module\\Namespace\\MyListener'
),

array key "router/routes"


'my_rest_route_name' => array(
    'type' => 'Zend\Mvc\Router\Http\Segment',
    'options' => array(
        'route' => '/my/rest/endpoint/[/:id]',
        'defaults' => array(
            //MyRestController is a virtual Controller
            //The name is needed to map the module configuration to the endpoint
            'controller' => 'My\\Module\\Namespace\\MyRestController'
        )
    ),

Optional Configuration Values

Based on the source code from RestControllerFactory.php, following configuration keys are optional (mention as mandatory in the current README.md).

  • resource_identifiers
  • identifier
  • controller_class
  • entity_class
  • collection_class

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

The author does not allow comments to this entry

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Markdown format allowed
Form options