anxis / laravel-json-api-resource
Laravel JSON API Resource
v1.2.2
2021-01-22 14:21 UTC
Requires
- php: ^7.1
- illuminate/support: ^6|^7|^8|^9
Requires (Dev)
- orchestra/testbench: 3.8.*
- phpunit/phpunit: ^7.0
README
这可能是Laravel API Resource的一个替换方案,能够按照规范生成JSON API响应。(https://jsonapi.fullstack.org.cn/)。
* 需要重构和测试,欢迎提交pull request。
安装
您可以通过composer安装此包
composer require kharysharpe/laravel-json-api-resource
使用方法
预制的示例 https://github.com/kharysharpe/laravel-json-api-resource-example
从头开始
laravel new json-server
cd json-server
composer require kharysharpe/laravel-json-api-resource
routes/api.php
<?php Route::get('/users', 'UserController@index'); Route::get('/users/{id}', 'UserController@show');
app/Http/Controllers/UserController.php
<?php namespace App\Http\Controllers; use App\User; use Kharysharpe\LaravelJsonApiResource\Http\Resource\JsonApi\Resource; use Kharysharpe\LaravelJsonApiResource\Http\Resource\JsonApi\ResourceCollection; class UserController extends Controller { public function index() { $user = User::all(); return new ResourceCollection($user); } public function show($id) { $user = User::find($id); return new Resource($user); } }
OR
<?php namespace App\Http\Controllers; use App\User; use App\Http\Resource\UserCollection; use App\Http\Resource\UserResource; class UserController extends Controller { public function index() { $user = User::all(); return new UserCollection($user); } public function show($id) { $user = User::find($id); return new UserResource($user); } }
app/Http/Resource/UserResource.php
<?php namespace App\Http\Resource; use Kharysharpe\LaravelJsonApiResource\Http\Resource\JsonApi\Resource; class UserResource extends Resource { // }
app/Http/Resource/UserCollection.php
<?php namespace App\Http\Resource; use Kharysharpe\LaravelJsonApiResource\Http\Resource\JsonApi\ResourceCollection; class UserCollection extends ResourceCollection { }
准备数据库(别忘了向用户表添加数据)
php artisan migrate
启动您的Laravel应用程序
php artisan serve
访问
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全
如果您发现任何安全问题,请通过电子邮件 kharysharpe@gmail.com 而不是使用问题跟踪器来报告。
待办事项
- 添加致谢和/或引用
- 考虑使用 https://github.com/spatie/laravel-json-api-paginate 来修复分页问题
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅 许可证文件。