aidan-casey/http-parser

用于将HTTP请求解析为API可用查询的各种工具。

v1.2.1 2018-09-10 14:53 UTC

This package is not auto-updated.

Last update: 2024-09-11 16:14:55 UTC


README

此包提供各种类,帮助将HTTP请求的PSR表示转换为API服务器有用的其他形式。

例如,HttpToZend类将HTTP参数转换为可以传递给您的模型以提供信息或执行操作的数据库查询。

安装

即将推出!目前,您可以随意克隆此存储库。

HttpToZend

支持的GET参数/请求方法

字段

fields=ID, Name

筛选

filter={
    "ID": {
        "$gte" : 4
    },
    "Name": "Example"
}

支持的筛选器

排序

orderby={
    "Name": "ASC",
    "ID": "DESC"
}

限制

limit=20

偏移

offset=20

示例

此示例使用Slim框架,并将GET请求转换为数据库选择查询。

<?php

// Provides composer dependencies.
require_once 'vendor/autoload.php';

// Start our Slim app.
$App = new Slim\App([
    'settings'  => [
        'displayErrorDetails' => true
    ]
]);

// Add a database connection to our application container.
$Container = $App->getContainer();

$Container['DB'] = function ( $Container )
{
    // Setup our query adapter.
    $Adapter = new Zend\Db\Adapter\Adapter([
        'database'  => 'Example',
        'driver'    => 'Mysqli',
        'host'      => 'localhost',
        'password'  => '',
        'username'  => 'ExampleUser'
    ]);

    // Now setup our sql object.
    return new Zend\Db\Sql\Sql( $Adapter );
};

// Setup our API route.
$App->get('/', function ( $Request, $Response ) use ( $Container )
{
    // Parse any filters, etc.
    $Parser = new AidanCasey\HttpParser\HttpToZend();
    $Select = $Parser->ConvertHttpRequest( $Request );
    
    // Prepare a query for the database.
    $Statement  = $Container['DB']->prepareStatementForSqlObject(
        $Select->from('ExampleTable')
    );

    // Now execute that query.
    $Result     = $Statement->execute();
});

// Run our Slim app.
$App->run();