multividas/api-responser

Composer包,用于简化API响应的结构化和生成过程

安装: 533

依赖者: 0

建议者: 0

安全性: 0

星标: 1

关注者: 1

分支: 1

开放问题: 0

类型:package

v2024.07.01.22.19 2024-07-01 21:10 UTC

This package is auto-updated.

Last update: 2024-09-13 16:49:39 UTC


README

API Responser package logo

API Responser

Tests Total Downloads License

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": {}
}

了解更多:Multividas API Responser

运行PHPUnit测试

composer test

🤝 贡献

请阅读贡献指南

🛡️ 安全问题

如果您在Multividas中发现安全漏洞,我们非常感谢您以负责任的方式向我们披露,请查看我们的安全问题指南

🛡️ 许可证

MIT许可证下许可。

电子邮件:multividasdotcom@gmail.com