euskadi31/rest-service-provider

Silex 2.0 的 Rest 服务提供者

v1.2.9 2015-10-21 16:58 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:25:52 UTC


README

Build Status SensioLabs Insight Coveralls HHVM Packagist

为 Silex 2.0 添加一些 REST 功能,以便您更容易构建 RESTful API。

安装

euskadi31/rest-service-provider 添加到您的 composer.json

% php composer.phar require euskadi31/rest-service-provider:~1.2

用法

配置

<?php

$app = new Silex\Application;

$app->register(new \Euskadi31\Silex\Provider\RestServiceProvider);

字段过滤器

<?php

$app = new Silex\Application;

$app->register(new \Euskadi31\Silex\Provider\RestServiceProvider);

$app->get('/users', function() {
    return $this->json([
        [
            'id'        => 1,
            'username'  => 'John',
            'email'     => 'john@example.com',
            'enabled'   => true
        ],
        [
            'id'        => 2,
            'username'  => 'Jean',
            'email'     => 'jean@example.com',
            'enabled'   => true
        ]
    ]);
});

请求

GET /users?fields=username

响应

[
    {
        "id": 1,
        "username": "John"
    },
    {
        "id": 2,
        "username": "Jean"
    }
]

Jsonp 响应

<?php

$app = new Silex\Application;

$app->register(new \Euskadi31\Silex\Provider\RestServiceProvider);

$app->get('/users', function() {
    return $this->json([
        [
            'id'        => 1,
            'username'  => 'John',
            'email'     => 'john@example.com',
            'enabled'   => true
        ],
        [
            'id'        => 2,
            'username'  => 'Jean',
            'email'     => 'jean@example.com',
            'enabled'   => true
        ]
    ]);
});

请求

GET /users?callback=Acme.process

响应

/**/Acme.process([
    {
        "id": 1,
        "username": "John",
        "email": "john@example.com",
        "enabled": true
    },
    {
        "id": 2,
        "username": "Jean",
        "email": "jean@example.com",
        "enabled": true
    }
]);

美化打印响应

<?php

$app = new Silex\Application;

$app->register(new \Euskadi31\Silex\Provider\RestServiceProvider);

$app->get('/users', function() {
    return $this->json([
        [
            'id'        => 1,
            'username'  => 'John',
            'email'     => 'john@example.com',
            'enabled'   => true
        ],
        [
            'id'        => 2,
            'username'  => 'Jean',
            'email'     => 'jean@example.com',
            'enabled'   => true
        ]
    ]);
});

请求

GET /users?pretty=0

响应

[{"id":1,"username":"John","email":"john@example.com","enabled":true},{"id":2,"username":"Jean","email":"jean@example.com","enabled":true}]

错误响应

{
    "error": {
        "message": "No route found for \u0022GET \/me1\u0022",
        "type": "NotFoundHttpException",
        "code": 404
    }
}

许可证

RestServiceProvider 根据 MIT 许可证 许可。