zfr/zfr-rest

Zend Framework 2 REST Module.

v0.5.0 2016-03-11 13:27 UTC

This package is auto-updated.

Last update: 2024-04-07 01:31:00 UTC


README

Build Status Scrutinizer Quality Score Latest Stable Version Total Downloads Dependency Status

Installation

Install the module by typing (or add it to your composer.json file):

php composer.phar require zfr/zfr-rest:0.5.*

Then, add the keys "ZfrRest" to your modules list in application.config.php file, and copy-paste the file zfr_rest.global.php.dist into your autoload folder (don't forget to remove the .dist extension at the end!).

ZfrRest 0.4+ vs ZfrRest 0.3

Starting from version 0.4, ZfrRest has been completely rewritten from scratch. Previously, ZfrRest used to do a lot of things automatically for you, from rendering, to automatic routing and creation of routes. While it was nice for very simple use cases, it was actually very hard to extend, introduced a lot of performance problems and was quite unflexible.

Now, ZfrRest is more a "small REST utility". It provides a simple way to handle HTTP exceptions, a lightweight controller that can both handle action and HTTP verbs, and a view layer adapted for resource rendering (that can optionally use versioning to render a resource differently based on the version). You can consider ZfrRest as a module that you can use if you want to create a REST API, instead of a full-blown module like Apigility or previous ZfrRest versions.

Additionally, dependency to Doctrine has been completely removed and can be used by anyone.

ZfrRest vs Apigility

Apigility is a Zend Framework 2 API builder that also aims to simplify the creation of REST APIs.

Starting from ZfrRest 0.4+, there is actually nothing in common between those two libraries. Apigility is a full-blown module that does a lot of things, from headers negotiation, automatic rendering, link generation, a code-generator... On the other hand, ZfrRest is the bare metal, and leave most of the responsibility and power to you.

Documentation

The official documentation is available in the /docs folder.