helllomatt/aspen

简单的PHP API框架

1.1 2017-09-18 19:00 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:35:44 UTC


README

Aspen是一个API管理和路由器。发起一个请求,它将处理请求并将其返回。

安装

composer require helllomatt/aspen

设置

您需要为您的项目创建一个索引文件。这将加载您的配置文件和您想要使用的API端点。

index.php

<?php

namespace ASPEN;

require './vendor/autoload.php';

// If you're interested in enabling CORS
// Config::checkOrigin(Config::getOriginInformation());

Config::load('path/to/config.json');
$manager = new APIManager();
$manager->load([
    'modules/endpoint1',
    'modules/endpoint2'
]);

如果您使用Apache,需要一个.htaccess文件来实现干净的路由。

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?route=$1 [QSA]

如果您使用Nginx,需要修改您的站点配置。

[待办事项]

创建端点

模块、插件、扩展或您如何称呼它们,都是API的独立端点。当您在上述创建的索引文件中定义要加载的模块时,那里的一切都是绝对路径。《code>modules/文件夹只是一个建议,您可以按任何方式组织。

创建modules/文件夹,然后在其中创建一个sample/文件夹,完整的路径为[ROOT]/modules/sample/

API需要一个必需的文件,名为controller.php。它执行您认为它执行的操作,控制路由。

controller.php

<?php

use ASPEN\API;
use ASPEN\Response;

$api = new API('Sample'); // API name (not really important)
$api->version(1);         // API version (important)

// API endpoints
$api->add((new Endpoint([
        'to'     => 'test/'
        'method' => 'get'
    ]))->then(function(Response $r) {
        $r->add("hello", "world");
        $r->success();
    }))

return $api; // VERY IMPORTANT!

创建API对象,就是这样。然后设置版本。版本在调用端点时很重要。版本被查看。(例如localhost/some-api/v1/getlocalhost/some-api/v2/get不同)

然后您创建端点,或可以访问的位置。

curl https:///aspen/v1/test

[outputs]
{
    "status": "success"
    "data": {
        "hello": "world"
    }
}

最后也是最重要的,您需要将API对象从文件中返回出去。这个内部工作原理的例子是$api = (include 'controller.php');。这允许ASPEN访问API对象并在路由时与之交互。