agrandesr/agrouter

A.G.R 是一个用于在 PHP 中快速高效地创建 API 的 composer 库。它并不想成为一个与 symfony 和 laravel 比肩的强大框架,而更倾向于轻量级,让使用它的人能够检查和理解。理念是从单个 json 文件开始工作整个路径系统。

v1.1.1 2022-04-28 17:48 UTC

This package is auto-updated.

Last update: 2024-09-11 13:50:29 UTC


README

A.G.R 是一个专为在 PHP 中快速高效创建 API 设计的 composer 库。它并不想成为一个与 symfony 和 laravel 比肩的强大框架,而更倾向于轻量级,让使用它的人能够检查和理解。理念是从单个 json 文件开始工作整个路径系统。

先决条件 📋

您需要在您的计算机上安装 composer。

安装 🔧

您需要将包要求到您的项目中。

composer require agrandesr/agrouter

接下来,您可以在代码中使用它。我们鼓励在根文件 index.php 中使用。在 auoload require 之下写入很重要。

<?php

require './vendor/autoload.php';

use AgrandesR\Router;

$router = new Router();

$router->run();

最后,您需要创建一个 routes.json 文件,以开始创建您的 API。

有一个简单的示例来测试!

{
    "routes": {
        "hi": {
            "POST": {
                "render":{
                    "type":"json",
                    "content":"{\"test\":\"test with string\"}"
                }
            },
            "GET": {
                "render":{
                    "type":"json",
                    "content":{
                        "test":"test with object"
                    }
                }
            }
        }
    }
}

如何开始 🚀

A.G.R 的理念是使开发 RESTFULL API 和它们的文档更加容易。您已经在上文中看到了第一步,即定义 API 的 routes.json 文件。

我们的概念是首先创建默认答案的 json,然后替换为最终代码。在两种情况下,您必须始终修改的是 routes.PATH.METHOD.render 中的 render 对象。

JSON 响应

在第一种情况下,当您需要创建简单的 json 响应时,非常简单。您需要将 type 指示为 json,并在内容中插入 json。

您可以将 json 插入内容作为字符串

{
"render":{
    "type":"json",
    "content":"{\"test\":\"test with string\"}"
}

或者您可以将 json 插入内容作为对象

{
"render":{
    "type":"json",
    "content":{
        "test":"test with object"
    }
}

类响应

这可能是您真正想要的重要渲染。它很简单。您需要将 type 指示为 class,并将下一个对象添加到值 content

{
    "path":"App\\internal",
    "name":"Test",
    "function":"json"
}

对象值如下

  • path:您想要调用的类的命名空间
  • name:类名。
  • function:您想要调用的函数。

示例

渲染对象

{
"render":{
    "type":"class",
    "content":{
        "path":"App\\internal",
        "name":"Test",
        "function":"json"
    }
}

php 类(在 App\internal 命名空间中)

<?php
namespace App\internal;

class Test {
    public function json() {
        header('Content-Type: application/json');
        echo json_encode(["test"=>"This is only a test"]);
    }
}

必需参数

最令人烦恼的事情之一是必须验证参数。使用 Router,您可以快速将其作为方法选项添加 req_parameters!

{
    "routes": {
        "hi": {
            "GET": {
                "req_parameters":[
                    "id",
                    "product",
                    {
                        "name":"email",
                        "regex":"/\w{1,}\@\w{1,}\.{2,5}/"
                    }
                ]
                "render":{
                    "type":"json",
                    "content":{
                        "test":"test with object"
                    }
                }
            }
        }
    }
}

例如,必需参数可以是参数名称的字符串或一个对象,其中您可以指定名称和验证参数值的正则表达式。

额外

版本控制:📌

我们使用 SemVer 进行版本控制。有关所有可用版本,请参阅此存储库中的 标签

作者 ✒️

提及所有从项目开始就帮助构建该项目的人

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

许可证 📄

本项目采用MIT许可协议 - 请阅读LICENSE.md文件以获取更多详细信息。

感谢:🎁