jpierront / api-batch-bundle
Api Batch Bundle
v1.0.0
2015-09-16 20:23 UTC
Requires
- php: >=5.3.3
- symfony/symfony: ~2.6
Requires (Dev)
- phpunit/phpunit: ~4.6
This package is not auto-updated.
Last update: 2024-09-28 18:10:41 UTC
README
关于
JPierrontApiBatchBundle 允许你通过单个 HTTP 请求发送多个 JSON API 调用。
安装
在 composer.json 中要求 jpierront/api-batch-bundle
包,并更新你的依赖项。
$ composer require jpierront/api-batch-bundle
将 JPierrontApiBatchBundle 添加到应用程序的内核
public function registerBundles()
{
$bundles = array(
...
new JPierront\ApiBatchBundle\JPierrontApiBatchBundle(),
...
);
...
}
配置
为批量操作创建路由
YAML
# app/config/routing.yml
batch:
path: /api/batch
defaults: { _controller: JPierrontApiBatchBundle:ApiBatch:apiBatch }
注解
# app/config/routing.yml
batch:
resource: AppBundle\Controller\ApiBatchController
// AppBundle\Controller\ApiBatchController.php
class ApiBatchController extends BaseApiBatchController
{
/**
* @Route(path="batch", name="batch")
*/
public function getAction(Request $request)
{
return parent::getAction($request);
}
}
用法
请求
使用 POST 方法在请求体中调用新的批量 API
[
{
"method": "GET",
"url": "/sub-api-1",
"parameters": "queryParameter1=value1&queryParameter2=value2"
},
{
"method": "POST",
"url": "/sub-api-2",
"parameters": "postParameter1=value1&postParameter2=value2"
}
]
方法
- 接受任何 HTTP 方法(GET、POST、PUT、PATCH、...)
- 必须等于 API 期望的方法
url
- 子 API 的相对 URL
- 不包含主机名
- 不包含查询参数
参数
- 您获取或 POST 的参数格式化成查询字符串
响应
批量 API 将返回一个 JSON 响应
[
{
"code": 200,
"headers": {
"content-type": "application\/json",
},
"body": "Your json response of sub api 1"
},
{
"code": 200,
"headers": {
"content-type": "application\/json",
},
"body": "Your json response of sub api 2"
}
]
code
- 是子 API 调用的 HTTP 状态码
headers
- 是子 API 调用的头部信息
body
- 是子 API 调用的正文内容
许可证
在 MIT 许可证下发布,见 LICENSE。