agrandesr/agile-router

Agile router 是一个为 PHP 创建 API 的 composer 库,旨在快速高效地完成。它是一个敏捷且出色的路由器。

v1.0.2 2023-02-01 12:08 UTC

This package is auto-updated.

Last update: 2024-09-09 16:52:39 UTC


README

Agile router 是一个为 PHP 创建 API 的 composer 库,旨在快速高效地完成。它是一个敏捷且出色的路由器。主要思想是使 API 的创建更简单

  1. 敏捷:您可以非常快速地创建第一个 API 概念,并随着时间的推移进行改进。
  2. 简单:理念是路由器完成所有无聊的参数检查工作,开发者可以开始处理项目的有趣部分 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。下面可以找到关于每种方法的更多信息。

  • JSON渲染 - 显示基本的JSON默认响应。
  • CLASS渲染 - 运行您决定的类,在类中您可以像vanilla php一样进行任何操作。
  • SQL渲染 - 返回SQL数据库查询的响应。

PHP框架工具

嗨!以下工具是可选的。它们是为了开发框架而创建的,并且已经被下载。因此,看看它们可能是个好主意。如果类适合您,那就太好了!如果不满意...您只需忽略它们或重写代码以删除即可...😭

一些相关信息

路由优先级

重要的是要知道JSON路径是从上到下的。因此,如果您编写了两个可能的路由,第一个路由总是会执行。这一点非常重要。例如,对于以下调用:

localhost/test/slug/test

使用路由文件(简化版)

{
    "test/{id}/test":{"...":"..."},
    "test/slug/test":{"...":"..."},
    "{id}/{value}/test":{"...":"..."}
}

始终会进入您json文件中第一个路由的配置。







附加信息

版本控制:📌

查看所有可用版本的信息,请参阅本存储库中的标签

作者 ✒️

您还可以查看所有[贡献者]的列表(https://github.com/your/project/contributors),他们参与了此项目。

许可 📄

本项目采用MIT许可 - 有关详细信息,请参阅LICENSE.md文件。

感谢:🎁