eoneopay/api-formats

此包已被弃用且不再维护。作者建议使用eoneopay/apiformats包。

处理不同格式的API请求和响应的包

安装: 147

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 6

分支: 1

开放问题: 0

类型:

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

This package is auto-updated.

Last update: 2019-09-30 05:05:55 UTC


README

安装

使用Composer 在您的项目中安装此包

composer require eoneopay/apiformats

格式

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

集成

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

为了在您的应用程序中配置支持的格式,创建一个名为 api-formats.php 的配置文件,并使用编码器类作为键,相关MIME类型数组作为值来创建一个 formats 数组。

// config/api-formats.php

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