multividas / api-responser
Composer包,用于简化API响应的结构化和生成过程
v2024.07.01.22.19
2024-07-01 21:10 UTC
Requires
- php: ^8.2
Requires (Dev)
- friendsofphp/php-cs-fixer: dev-master
- multividas/query-filters: dev-main
- orchestra/testbench: 8.x-dev
- phpunit/phpunit: 9.6.x-dev
- squizlabs/php_codesniffer: 4.0.x-dev
This package is auto-updated.
Last update: 2024-09-13 16:49:39 UTC
README
API Responser
Composer包,用于简化API响应的结构化和生成过程
安装
使用composer安装此包。
composer require multividas/api-responser
ServiceProvider
[可选] 将 ApiResponserServiceProvider 添加到 config/app.php 中的 providers 数组
\Multividas\ApiResponser\Providers\ApiResponserServiceProvider::class,
[可选] 要获取 X-Application-Name HTTP响应头,使用发布命令将包配置复制到本地配置
php artisan vendor:publish --tag=api-responser-config
用法
use \Multividas\ApiResponser\Traits\ApiResponser; class Controller extends BaseController { use ApiResponser; }
ApiResponser接口
使用ApiResponser
接口方法。
showAll()
方法接受Collection|JsonResource
作为其参数。showOne()
方法接受Model|JsonResource $instance
作为其参数。
use \Multividas\ApiResponser\Interfaces\ApiRepositoryInterface; class PostsController extends Controller { public function __construct( public ApiRepositoryInterface $apiRepository ) { } public function index(): JsonResponse { return $this->apiRepository->showAll(Post::all()); } public function show(Post $post): JsonResponse { if (!$post instanceof Post) { return $this->infoResponse('Item Not Found', 404, []); } return $this->apiRepository->showOne($post); } }
ApiResponser Facade
使用ApiResponser
外观设计模式。
use Multividas\ApiResponser\Facades\ApiResponser; class PostsController extends Controller { public function index(): JsonResponse { return ApiResponser::showAll(Post::all()); } public function show(string $postId): JsonResponse { $post = Post::find($postId); if (!$post instanceof Post) { return $this->infoResponse('Post Not Found', 404, (object)[]); } return ApiResponser::showOne($post); } }
这种方法提供了更清晰、更有组织的方式与控制器方法中的ApiRepositoryInterface
实例交互。
成功响应
包含请求数据和适当的HTTP状态码的成功响应。
{ "data": [], "code": 200, "meta": {} }
运行PHPUnit测试
composer test
🤝 贡献
请阅读贡献指南。
🛡️ 安全问题
如果您在Multividas中发现安全漏洞,我们非常感谢您以负责任的方式向我们披露,请查看我们的安全问题指南。
🛡️ 许可证
在MIT许可证下许可。