craffft/contao-restful-webservices

此包已被废弃,不再维护。未建议替代包。

Contao OpenSource CMS 的 RESTful Webservices

2.1.0 2015-02-20 20:30 UTC

This package is not auto-updated.

Last update: 2020-08-21 20:17:34 UTC


README

"RESTful Webservices" 扩展是开发人员在自己的扩展中实现 RESTful Webservices 的辅助库

许可证

此 Contao 扩展受 LGPLv3 许可协议的约束。https://gnu.ac.cn/licenses/lgpl-3.0.html

依赖

链接

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

文档

定义 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',
    )
);

声明 webservice 类 "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
    }
}