cdgco / php-rest-service
PHP REST Service 是一个简单快速的 PHP 类,用于服务器端 RESTful API。
v0.2.4
2023-04-27 00:27 UTC
Requires
- php: >=7.4.0
Requires (Dev)
- onspli/phpdoc-markdown: ^0.3.3
- phpunit/phpunit: 9.5.27
README
PHP REST Service
PHP REST Service 是一个简单快速的 PHP 类,用于 RESTful JSON API。
https://cdgco.github.io/php-rest-service
特性
- 易于使用的语法
- 支持正则表达式
- 通过 PHP 异常处理错误
- 支持 JSON、XML 和纯文本响应
- 自动生成 OpenAPI 规范
- 通过 PHP 函数签名进行参数验证
- 可以通过
OPTIONS方法返回所有路由的摘要或单个路由(如果OPTIONS没有被覆盖) - 支持
GET、POST、PUT、DELETE、PATCH、HEAD和OPTIONS - 使用 ?_suppress_status_code=1 隐藏 HTTP 状态码(对于有问题的客户端)
- 支持自定义错误处理、日志记录、访问控制和响应格式化函数。
- 支持使用 ?_method=
httpMethod作为实际 HTTP 方法的补充。 - 通过 PHP 的
reflection自动生成
要求
- PHP 7.4+(已在 PHP 7.4 - 8.2 上测试)
安装
php composer require cdgco/php-rest-service
演示
手动创建端点
use RestService\Server; Server::create('/') ->addGetRoute('test/(\D+)', function($param){ return 'Yay!' . $param; // $param pulled from URL capture group }) ->addPostRoute('foo', function($field1) { return 'Hello ' . $field1; // same as "return 'Hello ' . $_POST('field1');" }) ->addGetRoute('use/this/name', function(){ return 'Hi there'; }) ->run();
自动创建端点
namespace MyRestApi; use RestService\Server; class Admin { /* * @url /test/(\d+) */ public function getTest($param) { return 'Yay!' . $param; // $param pulled from URL capture group } public function postFoo($field1){ return 'Hello ' . $field1; // same as "return 'Hello ' . $_POST('field1');" } /* * @url /use/this/name */ public function getNotThisName($field1){ return 'Hi there'; } } Server::create('/', 'myRestApi\Admin') ->collectRoutes() ->run();
两种方法都将生成以下端点
+ GET /test/:param
+ POST /foo
+ GET /use/this/name
文档
请参阅完整的文档:https://cdgco.github.io/php-rest-service。
许可证
在 MIT 许可证下发布。有关更多详细信息,请参阅 LICENSE 文件。