eoneopay / apiformats

该软件包已被废弃且不再维护。作者建议使用 eonx-com/apiformats 软件包。

用于处理不同格式的API请求和响应的软件包

安装数量: 2,237

依赖: 4

推荐: 0

安全性: 0

星标: 3

关注者: 6

分支: 1

开放问题: 0

类型:软件包

v1.0.0 2019-07-10 02:36 UTC

This package is auto-updated.

Last update: 2019-11-10 23:49:57 UTC


README

安装

使用 Composer 在项目中安装此软件包

composer require eoneopay/apiformats

格式

默认情况下,该软件包处理 JSON (application/json) 和 XML (application/xml, text/xml) 格式。如果您想处理不同的格式或想实现自己的 JSON/XML 编码逻辑,您只需要创建一个实现 \EoneoPay\ApiFormats\Interfaces\RequestEncoderInterface 的编码器,并告诉软件包使用它,具体使用哪些Mime类型请参考配置部分。

集成

Laravel

要将软件包集成到您的 LaravelLumen,您需要注册以下服务提供者和中间件

  • 服务提供者: \EoneoPay\ApiFormats\Bridge\Laravel\Providers\ApiFormatsServiceProvider
  • 中间件: \EoneoPay\ApiFormats\Bridge\Laravel\Middlewares\ApiFormatsMiddleware

就是这样!您的应用程序现在可以轻松地以多种格式接收请求和生成响应。

格式化的API响应

如果您想自定义生成的响应(如状态码或头信息)而不处理主体编码,该软件包提供了可以从您的控制器/中间件返回的 \EoneoPay\ApiFormats\Bridge\Laravel\Responses\FormattedApiResponse 对象。该 FormattedApiResponse 通过构造函数接受三个参数,如下所示

  • $content (mixed): 可以转换为数组的数组或对象
  • $statusCode (int): 响应的状态码,默认为 200
  • $headers (array): 响应的头信息,默认为空数组

配置

该软件包的核心理念是通过数组将编码器映射到可以处理的MIME类型列表

$formats = [
    <RequestEncoderInterface> => [<mime_type>, <mime_type>, ...]
];

每个MIME类型可以是精确的名称,如 application/json,或者是一个 正则表达式,用于匹配多个MIME类型,如 application/vnd.eoneopay.v[0-9]+\+json

Laravel

要配置应用程序中支持的格式,创建一个包含 formats 数组的 api-formats.php 配置文件,其中使用编码器类作为键,关联的MIME类型数组作为值

// config/api-formats.php

return [
    'formats' => [
        JsonRequestEncoder::class => ['application/json'],
        XmlRequestEncoder::class => ['(application|text)/xml'],
        YourCustomerEncoder::class => ['you-custom-mime-type']
    ]
];