jowy / phalcon-restful-webservice
Phalcon RESTful Webservice
Requires
This package is not auto-updated.
Last update: 2024-09-24 15:36:05 UTC
README
这只是另一个Phalcon RESTful webservice。它使用Phalcon注释路由进行高级和灵活的路由配置。
路由与选项
所有路由都必须放在 app/controllers
目录下,并且类名必须以 Controller
后缀结尾。如果你的控制器名为 Example
,则类名为 ExampleController
。你可以限制最大请求到特定的API密钥或方法。限制API密钥的最大请求可以在类注释中设置,这将限制API密钥访问类中的所有方法。此外,如果你想限制特定的方法,可以在方法注释中设置,这将限制所有API密钥访问此方法。
类注释选项
@RoutePrefix("your-prefix-url-here")
- 必需
@Api(level=1-10, limits={"key": {"increment": "-1 month", "limit": 1000}})
- 可选
方法注释选项
@Get("/")
- 必需
@Post("/")
- 必需
@Put("/)
- 必需
@Delete("/")
- 必需
@Auth("your-auth-driver")
- 可选
@Limit({"increment": "-1 hour", "limit": 50})
- 可选
完整示例
use Phalcon\Mvc\Controller; /** * @RoutePrefix("/v1/example") * @Api(level=1, * limits={ * "key" : { * "increment" : "-1 day", "limit" : 1000} * } * ) */ class ExampleController extends Controller { /** * @Get("/") * @Limit({"increment": "-1 hour", "limit": 50}); * @Auth("basic") * @Whitelist() */ public function getAction() { // Your Logic here } /** * @Post("/") * @Limit({"increment": "-1 hour", "limit": 50}); * @Auth("basic") */ public function addAction() { // Your Logic here } }
认证
通过添加认证,您可以添加额外的安全层。认证只能通过添加注释来启用每个类方法。
基本认证
当用户请求webservice时,此选项启用HTTP基本认证。
响应
响应由 ellipsesynergie/api-response 处理,您可以通过phalcon DI使用 apiResponse
访问此库。
用法
/** * @Get("/") * @Limit({"increment": "1 hour", "limit": 50}); * @Auth("basic") */ public function getAction() { $this->apiResponse->withArray( [ "name" => "Jowy" ], [ "My-Custom-Response-Header" => "It rocks" ] ); }
迁移
php vendor/bin/phinx migrate
测试
php vendor/bin/codecept run
待办事项
- 改进文档
- 添加基于IP的白名单/黑名单(已实现)
- 添加基于IP的限制
- 添加用于监控webservice的仪表板