cdgco/php-rest-service

PHP REST Service 是一个简单快速的 PHP 类,用于服务器端 RESTful API。

v0.2.4 2023-04-27 00:27 UTC

This package is auto-updated.

Last update: 2024-09-27 06:57:46 UTC


README

PHP REST Service

PHP REST Service 是一个简单快速的 PHP 类,用于 RESTful JSON API。

Build Status PHP Version Package Version License

https://cdgco.github.io/php-rest-service

特性

  • 易于使用的语法
  • 支持正则表达式
  • 通过 PHP 异常处理错误
  • 支持 JSON、XML 和纯文本响应
  • 自动生成 OpenAPI 规范
  • 通过 PHP 函数签名进行参数验证
  • 可以通过 OPTIONS 方法返回所有路由的摘要或单个路由(如果 OPTIONS 没有被覆盖)
  • 支持 GETPOSTPUTDELETEPATCHHEADOPTIONS
  • 使用 ?_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 文件。