eonx-com/apiformats

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

安装数量: 54,639

依赖项: 5

建议者: 0

安全性: 0

星标: 3

关注者: 5

分支: 1

公开问题: 7

类型:软件包


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']
    ]
];