isaackearl / artisan-api
此包已被废弃且不再维护。未建议替代包。
适用于Laravel或Lumen的API服务。帮助您发送具有正确状态和代码的响应。使用Fractal处理项目和集合。
v1.0.2
2017-08-09 20:22 UTC
Requires
- php: ~5.6|~7.0
- doctrine/inflector: ~1.1.0
- doctrine/instantiator: ~1.0.5
- illuminate/http: ~5.1
- illuminate/pagination: ~5.1
- illuminate/routing: ~5.1
- illuminate/support: ~5.1
- spatie/laravel-fractal: ^4.3
Requires (Dev)
- mockery/mockery: ^0.9.9
- phpunit/php-token-stream: ~1.4.11
- phpunit/phpunit: ~4.0||~5.0||~6.0
- satooshi/php-coveralls: ^1.0
This package is not auto-updated.
Last update: 2020-08-22 05:39:24 UTC
README
适用于Laravel或Lumen的API服务。帮助您发送具有正确状态和代码的响应。使用Fractal处理项目和集合。
设置/安装
使用Composer进行安装
$ composer require isaackearl/artisan-api
将服务提供者添加到config/app.php
// For Laravel add this to config/app.php IsaacKenEarl\LaravelApi\Providers\ArtisanApiServiceProvider::class // For Lumen add this to bootstrap/app.php $app->register(IsaacKenEarl\LaravelApi\Providers\ArtisanApiServiceProvider::class);
(可选) 在config/app.php中添加API外观
'Api' => IsaacKenEarl\LaravelApi\Facades\Api::class,
使用方法
在您的控制器中,您可以这样做
// do stuff like this public function show() { return Api::respondWithItem($user, new UserTransformer()); } // or like this: return Api::respondNotFound();
有很多选项。在控制器构造函数中包含ArtisanApiInterface,您就可以在不使用外观的情况下使用它。
private $api; public function __construct(ArtisanApiServiceInterface $apiService) { $this->api = $apiService; } public function index() { $users = User::all(); return $this->api->respondWithCollection($users, new UserTransformer()); }
您也可以进行自定义操作并链式调用方法
// you can respondWithError or respondWithMessage and customize the status code // and response code etc return $this->api ->setStatus(401) ->setResponseCode(ResponseCodes::UNAUTHORIZED) ->respondWithError('Not logged in');
查看ArtisanApiInterface以了解所有支持的方法。您可以在以下位置找到它
转换器
转换器允许您控制API响应中数据的展示方式。一个典型的转换器如下所示
class UserTransformer extends Transformer { function transform($user) { return [ 'id' => $user->id, 'name' => $user->name, 'date_of_birth' => $user->date_of_birth->toDateString(), 'email' => $user->getPrimaryEmail() ]; } }
您可以使用make:transformer命令生成转换器
php artisan make:transformer UserTransformer
此包使用laravel-fractal作为其Fractal实现。请查看他们的GitHub页面上的文档以获取更多具体的使用信息和示例。
由于我们使用了laravel-fractal包,您还可以发布laravel-fractal配置来自定义响应数据。
php artisan vendor:publish --provider="Spatie\Fractal\FractalServiceProvider"
测试
$ composer test
贡献
请参阅CONTRIBUTING和CONDUCT以获取详细信息。
鸣谢
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。