sule/api

此包最新版本(v2.0.0)没有可用的许可信息。

Laravel 中创建 API 的辅助工具。

v2.0.0 2014-05-03 06:52 UTC

This package is not auto-updated.

Last update: 2024-09-28 15:13:31 UTC


README

基于 Laravel 框架开始创建 API 的基础库。同时支持 OAuth 2 授权。

安装

1. Composer

打开您的 composer.json 文件并添加以下行

{
    "require": {
        "sule/api": "2.0.0",
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "git@github.com:feelinc/laravel-api.git",
            "options": {
                "ssl": {
                    "verify_peer": "false"
                }
            }
        }
    ]
    "minimum-stability": "stable"
}e

通过命令行运行 composer update

composer update

2. 服务提供者 & 别名

将以下内容添加到 "app/config/app.php" 中的服务提供者列表。

'Sule\Api\ApiServiceProvider',

将以下内容添加到 "app/config/app.php" 中的别名列表。

'API'             => 'Sule\Api\Facades\API'

3. 创建表

从 "TABLES.sql" 文件创建所有必要的表。

4. 配置

安装后,您可以通过运行以下命令将包的配置文件发布到您的应用程序

php artisan config:publish sule/api

路由

POST /authorization

请求头

User-Agent: My User Agent 
Content-MD5: md5($stringContent.$clientSecret) 

请求体

grant_type:    client_credentials 
client_id:     JXSb6nEzpQ0e3WAWjsSsZurCaLy0knDjzkwxRlJs 
client_secret: C4vpZLRI2kncfXJQZ9l0hdnaTCTupyqF1deCVEPf 

响应体

{
    "access_token": "jU5vKEBSPSVqRwEXwjIM0N1YefCG0hwqTK5i0UC3",
    "token_type": "bearer",
    "expires": 1399017374,
    "expires_in": 3600
}

过滤器

1. api.oauth

检查路由是否对授权客户端和传递的范围有效,例如检查当前客户端是否具有 "read" 范围

Route::get('api/v1/users', array(
    'before' => array(
        'api.oauth:read'
    ), function() {

    }
));

2. api.content.md5

检查请求内容签名在 "Content-MD5" 头部。签名应为 md5($stringContent.$clientSecret)

Route::post('api/v1/users', array(
    'before' => array(
        'api.content.md5', 
        'api.oauth:write'
    ), function() {

    }
));

3. api.ua.required

检查请求 "User-Agent" 头部。

Route::post('api/v1/users', array(
    'before' => array(
        'api.ua.required', 
        'api.content.md5', 
        'api.oauth:write'
    ), function() {

    }
));

4. api.limit

检查请求是否未超过每个客户端的限额。

Route::post('api/v1/users', array(
    'before' => array(
        'api.ua.required', 
        'api.content.md5', 
        'api.limit', 
        'api.oauth:write'
    ), function() {

    }
));

响应

返回包含 Limiter 和 Access-Control-Expose-Headers 头的 JSON 响应

1. 单个 JSON 对象

return API::resourceJson($data = array(), $status = 200, array $headers = array());

2. 集合 JSON 对象

return API::collectionJson($data = array(), $status = 200, array $headers = array());