icodr8/contao-restful-webservices

RESTful Webservices for Contao OpenSource CMS

Installs: 5

Dependents: 0

Stars: 1

Watchers: 2

Open Issues: 1

Language: PHP

2.1.0 2015-02-20 20:30 UTC

README

The "RESTful Webservices" extension is a helper library for developers to realize RESTful webservices in your own extension

License

This Contao extension is licensed under the terms of the LGPLv3. http://www.gnu.org/licenses/lgpl-3.0.html

Dependencies

Links

https://contao.org/en/extension-list/view/restful-webservices.html

Documentation

Define the webservice "categories"

// systems/modules/mymodule/config/config.php

$GLOBALS['RESTFUL_WEBSERVICES']['ROUTING']['categories'] = array
(
    // Define the webservice location (required definition)
    // Callable via http://localhost/mycontao/interface/categories/12/my_token
    'pattern' => '/categories/{id}/{token}',

    // Restrict methods (optional definition)
    // You can use GET, PUT, POST and DELETE
    'methods' => array('GET', 'POST'),

    // Set requirements for the pattern values (optional definition)
    'requirements' => array
    (
        'id' => '\d+',
    ),

    // Restrict access by tokens (optional definition)
    'tokens' => array
    (
        'my_token',
    ),

    // Restrict access by ip addresses (optional definition)
    'ips' => array
    (
        '127.0.0.1',
    ),

    // Restrict CORS access by ip addresses (optional definition)
    'cors' => array
    (
        '192.168.1.180',
    )
);

Declare the webservice class "WebserviceCategories"

// systems/modules/mymodule/webservices/WebserviceCategories.php

namespace MyAppNamespace;

use \Haste\Http\Response\JsonResponse;

class WebserviceCategories extends \RESTfulWebservices\RESTfulController
{
    public function get()
    {
        $arrData = array();

        // Add "Hello World!" to the json output
        $arrData['status'] = 'Hello World!';

        // Send response
        $objResponse = new JsonResponse();
        $objResponse->setContent($arrData, JSON_PRETTY_PRINT);
        $objResponse->send();
    }

    public function put()
    {
        // Code for PUT requests
    }

    public function post()
    {
        // Code for POST requests
    }

    public function delete()
    {
        // Code for DELETE requests
    }
}