lukaskorl / restful
轻松创建RESTful API响应
Requires
- php: >=5.4.0
- illuminate/config: 4.*
- illuminate/pagination: 4.*
- illuminate/support: 4.*
- jms/serializer: 0.16.*
- symfony/http-foundation: 2.*
- symfony/yaml: 2.*
This package is not auto-updated.
Last update: 2024-09-28 15:40:29 UTC
README
此包允许您创建RESTful API响应,无需考虑底层HTTP层的具体细节。您提供数据,包将负责处理 输出格式 和 状态码。在应用程序出现错误的情况下,也可以创建RESTful错误响应。该包针对与 Laravel 框架一起使用进行了优化。本文档主要侧重于在Laravel框架中使用。
基本用法
RESTful 提供了两个独立的函数来返回 collection
或单个 entity
。
- 实体:如果您遵循REST约定,则实体是REST资源的单个条目。在大多数情况下,实体会在URI以资源ID结尾时返回。
- 集合:一个集合包含一组实体
返回单个实体
要返回单个实体,您可以在 Restful
门面上调用电 entity
方法,并提供任何实现了 ArrayAccess
接口的类。
$response = Restful::entity([
'name' => 'Dexter',
'age' => 1
]);
RESTful 将返回一个直接扩展 \Symfony\Component\HttpFoundation\Response
的 \Illuminate\Http\Response
。如果您使用Laravel 4框架,则可以直接返回响应对象。
如果您正确使用响应对象,则应用程序将返回
Content-Type:application/json
{
name: "Dexter",
age: 1
}
返回集合
类似于实体方法,collection
方法接受一组实体。
$response = Restful::collection([
[
'name' => 'Dexter',
'age' => 1
],
[
'name' => 'Dori',
'age' => 1
],
]);
集合可能是以下类型
array
:使用索引数组(作为集合)包含关联数组(作为实体)Illuminate\Support\Collection
:基本上与提供数组相同。\Illuminate\Pagination\Paginator
:当提供分页器时,RESTful 将自动在响应中包含有关分页的元数据。
响应将如下所示
Content-Type:application/json
{
data: [
{
name: "Dexter",
age: 1
},
{
name: "Dori",
age: 1
}
]
}
请注意,集合被包装在 data
属性中。这是必要的,因为集合也可能返回 metadata
。这些元数据可能包括分页信息。
Laravel 4中的使用
当在 Laravel 4 中使用 RESTful 时,您可以利用 Eloquent 的力量来驱动响应。以下行是任何控制器动作的结果。
return Restful::entity(Dogs::find(1));
return Restful::collection(Dogs::all());
return Restful::collection(Dogs::paginate(3));
高级API
强制输出格式
如果您想强制输出格式,可以使用相应的方法,并将其与您想要提供的内容链接起来。
return Restful::serialized()->collection(Dogs::all());
return Restful::php()->collection(Dogs::all());
return Restful::json()->collection(Dogs::all());
return Restful::jsonp('myFunction')->collection(Dogs::all());
return Restful::yaml()->collection(Dogs::all());
return Restful::xml()->collection(Dogs::all());
Content-Type 标头将根据指定的格式自动设置。
错误
也可以轻松地处理常见的错误。
return Restful::code(404)->error("Ups");
return Restful::forbidden();
return Restful::unauthorized();
return Restful::missing();
安装
Laravel 4框架内
要安装 RESTful,只需将其添加到项目的 composer.json
中作为需求
"require": {
"lukaskorl/restful": "dev-develop"
}
或运行 composer require lukaskorl/restful
。
警告:RESTful 目前正在积极开发中。我很快将发布稳定版本 1.0.0。在此期间,接口可能会更改。我不建议在生产代码中将 RESTful 作为 dev-develop
依赖项使用。
纯PHP
如果您想在任何其他PHP应用程序中使用 RESTful,请像上面一样通过composer安装它。要使用 RESTful,您可能需要添加几行代码,请参阅下面的示例代码。
<?php
require("vendor/autoload.php");
use \Lukaskorl\Restful\Facades\Vanilla as Restful;
Restful::entity(array( 'name' => 'Dexter' ))->send();
与在框架中使用 RESTful 相比,您不需要返回调用结果,而是直接将输出渲染并发送回用户。
许可证
RESTful 是在 MIT 许可证 下授权的开源软件