agrandesr / agile-router
Agile router 是一个为 PHP 创建 API 的 composer 库,旨在快速高效地完成。它是一个敏捷且出色的路由器。
Requires
- agrandesr/array-conditions: ^1.0
- agrandesr/arrays: ^1.1
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-09 16:52:39 UTC
README
Agile router 是一个为 PHP 创建 API 的 composer 库,旨在快速高效地完成。它是一个敏捷且出色的路由器。主要思想是使 API 的创建更简单
- 敏捷:您可以非常快速地创建第一个 API 概念,并随着时间的推移进行改进。
- 简单:理念是路由器完成所有无聊的参数检查工作,开发者可以开始处理项目的有趣部分 XD
如何开始 🚀
按照以下步骤开始使用这个 PHP 路由器。如果您发现任何错误或解释不清楚的地方,请不要犹豫,与我们联系(正确的是 我... 但 我们,听起来更好 😅)。
先决条件 📋
您需要在您的计算机上安装 PHP 和 composer。
安装 🔧
您需要将包添加到您的项目中。
composer require agrandesr/agile-router
接下来,您可以在代码中使用它。我们鼓励在根文件 index.php 中使用。在自动加载要求下写入很重要。
<?php require './vendor/autoload.php'; use Agrandesr\Router; $router = new Router(); $router->run();
最后,您需要创建一个 routes.json 文件以开始创建您的 API。
有一个简单的示例来测试!
{ "hi": { "GET": { "execute":[ { "type":"json", "content":{ "showAll":false, "body":{ "Obi-wan":"Hello there!", "Grievous": "General Kenobi" } } } ] } } }
有了这个,您将有一个操作端点 "hi",内容如下
{ "Obi-wan":"Hello there!", "Grievous": "General Kenobi" }
您只需使用 PHP 启动服务器。例如
php -S localhost:8000
现在您可以根据文档开始使用路由器 JSON 文件。我们建议在开始之前至少快速阅读一遍所有文档。是的,是的,这很无聊,但请相信我,这会非常有用。
文档
库的主要元素在 Router 文件中使用。但它们可以以不同的方式使用。
未来我将尝试制作一个简单的视频教程,以简化第一步。
路由文件选项
框架最重要的部分是路由文件。名为 routes.json 的文件必须位于项目根目录中,与 index.php(您可以通过高级配置更改此设置,但首先简单模式)一起。在此文件中,您可以按几个步骤创建和运行第一个操作 API。
文件的结构首先是路径;其次,方法;第三,为此端点设置的框架属性。
{ "path":{ "METHOD1":{ "FrameworkProperty1":{}, "FrameworkProperty2":{}, "FrameworkProperty3":{} }, "METHOD2":{}, "METHOD3":{} } }
路径由用户定义,由字符 "/" 分隔。要表示动态路由,即路由的 slug 是可变的,只需将其括在括号中({})即可。例如
section/{slug}/section/{slug}
方法是正常的请求方法
- GET
- POST
- UPDATE
- PUT
- DELETE
- ...
检查器
框架包括一些属性来验证请求中最常见的数据,如请求中的参数或 Body。
以下是一个使用可用检查器的请求示例。
{ "params":{ "POST":{ "req_headers":["x-header"], "req_parameters":["param"], "req_body":["id","data.name","data.surname"], "render":{ "type":"json", "content":{ "header":"^x-header^", "param":"?param?", "showAll":false, "body":{ "id":"$id$", "data": { "name":"$data.name$", "surname":"$data.surname$" } } } } } } }
正如您所看到的,您可以通过简单的方式检查 Body、Header 和请求参数。
同时,您可以使用这些值用于响应中的内容,用于 JSON 类型的渲染(也可以用于 SQL 类型的渲染)。
有关特定检查器的文档
渲染方法
JSON中的render方法或属性负责执行最终操作,其目标是打印API的最终结果。想法是主要使用JSON方法来原型设计您的API,并且前端可以开始与已部署在生产环境中的API一起工作。之后,您可以平静地替换JSON类型的renderer为CLASS类型的renderer来编写所需的代码。此外,从JSON和CLASS您还有SQL类型。这是为了快速原型设计接口数据库的API。下面可以找到关于每种方法的更多信息。
PHP框架工具
嗨!以下工具是可选的。它们是为了开发框架而创建的,并且已经被下载。因此,看看它们可能是个好主意。如果类适合您,那就太好了!如果不满意...您只需忽略它们或重写代码以删除即可...😭
一些相关信息
路由优先级
重要的是要知道JSON路径是从上到下的。因此,如果您编写了两个可能的路由,第一个路由总是会执行。这一点非常重要。例如,对于以下调用:
localhost/test/slug/test
使用路由文件(简化版)
{ "test/{id}/test":{"...":"..."}, "test/slug/test":{"...":"..."}, "{id}/{value}/test":{"...":"..."} }
始终会进入您json文件中第一个路由的配置。
附加信息
版本控制:📌
查看所有可用版本的信息,请参阅本存储库中的标签。
作者 ✒️
- A.Grandes.R - 主要工作者 - AGrandesR
您还可以查看所有[贡献者]的列表(https://github.com/your/project/contributors),他们参与了此项目。
许可 📄
本项目采用MIT许可 - 有关详细信息,请参阅LICENSE.md文件。
感谢:🎁
- Villanuevand 因其令人难以置信的 模板 而表示感谢 😊
- Alberto Ramirez 因其在PHP魔法世界中的灵感。