esokullu/react-restify

使用 ReactPHP 创建 RESTful API

1.1.2 2017-08-20 03:39 UTC

This package is auto-updated.

Last update: 2024-09-29 05:07:53 UTC


README

Scrutinizer Code Quality

为 ReactPHP 简化 RESTful API 的制作,真正做到了简单。

安装

通过 composer

    $ composer require capmousse/react-restify

创建服务器

以下是一个简单 HTTP 服务器的例子,它会回复所有类似 http://127.0.0.1:1337/hello/you 的 GET 请求

require 'vendor/autoload.php';

$server = new CapMousse\ReactRestify\Server("MyAPP", "0.0.0.1");

// Middleware
$server->use(function ($request, $next) {
	print_r($request->getMethod());
	$next();
});

// Dependency injection
$server->add(\Foo\Bar::class)

$server->get('/hello/{name}', function ($request, $response, \Foo\Bar $bar, $name) {
    $response
    	->write("Hello {$name}")
    	->end();

    $bar->foobar();
});

$server->listen(1337);

要创建安全的 HTTPS 服务器,你需要将所有的证书文件提供给服务器

$server->listen(1337, "[::1]", [
    'local_cert' => __DIR__ . 'localhost.pem'
]);

更多例子可以在 example 目录中找到,例如 Todo 示例。

控制器、中间件和依赖注入

React-Restify 支持控制器调用,类似 express 的中间件和依赖注入。

use CapMousse\ReactRestify\Http\Request;
use CapMousse\ReactRestify\Http\Response;

class Foo {
    public function bar() {
        echo "Do something";
    }
}

class FooBar {
    public function baz (Response $response, Foo $foo) {
        $foo->bar();
        $response->end()
    }
}

$server->add(Foo::class);

$server->use(function ($request, $next) {
    echo $request->httpRequest->getPath();
});

$server->get('/', 'FooBar@baz');

设计目标

React-Restify 主要是为了轻松构建 RESTful API 而制作的。它可以像 SilexExpress 一样使用。

下一个目标是支持 Sockets、升级请求等,以创建真正的实时 API 服务器。

许可证

MIT,见 LICENCE 文件