gonzalo123/restfull

restfull silex 服务器

dev-master 2015-02-18 18:00 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:50:41 UTC


README

使用 Silex 的简单 RESTfull 服务器

我们在 yml 文件中定义资源

example: \Example\Data

我们还定义了自动依赖

Symfony\Component\HttpFoundation\Request: request
Doctrine\DBAL\Connection: db

我们创建资源时扩展 G\RestFull\Resource\RestFullResource,我们可以在构造函数或请求函数(getOne、getAll、deleteOne、addOne、editOne)中定义参数,从 DIC 中获取参数

namespace Example;

use Symfony\Component\HttpFoundation\Request;

class Data
{
    private $request;

    public function __construct(Request $request)
    {
        $this->request = $request;
    }

    public function getAll()
    {
        return [
            ['id' => 0, 'name' => 'Peter Parker'],
            ['id' => 1, 'name' => 'Clark Kent'],
        ];
    }

    public function getOne($id)
    {
        return ['id' => $id, 'name' => 'Clark Kent ' . $this->request->get('a')];
    }

    public function deleteOne($id)
    {
        return [];
    }

    public function addOne()
    {
        return [];
    }

    public function editOne($id)
    {
        return [];
    }
}

该服务器基于 silex 构建

use G\RestFull\Silex\RestFullApplication;

$app = new RestFullApplication([
    'debug' => true,
    'class.map.path' => __DIR__ . '/config/resourceClassMap.yml',
    'auto.injection.map.path' => __DIR__ . '/config/autoDependenciesClassMap.yml',
    'base.path' => 'rest' // default value
]);

$app->run();