esokullu / react-restify
使用 ReactPHP 创建 RESTful API
1.1.2
2017-08-20 03:39 UTC
Requires
- php: ^7.0
- psr/container: ^1.0
- react/http: 0.5.*
Requires (Dev)
- atoum/atoum: ^3.0
This package is auto-updated.
Last update: 2024-09-29 05:07:53 UTC
README
为 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 而制作的。它可以像 Silex 或 Express 一样使用。
下一个目标是支持 Sockets、升级请求等,以创建真正的实时 API 服务器。
许可证
MIT,见 LICENCE 文件