sule / api
此包最新版本(v2.0.0)没有可用的许可信息。
Laravel 中创建 API 的辅助工具。
v2.0.0
2014-05-03 06:52 UTC
Requires
- php: >=5.3.7
- league/oauth2-server: 2.1.x
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());