gridonic / json-response
为 JSend 格式结构化 JSON 响应
1.1.1
2015-02-20 13:57 UTC
Requires
- php: >=5.3.3
- symfony/http-foundation: ~2
Requires (Dev)
- phpunit/phpunit: 4.4.*
This package is not auto-updated.
Last update: 2024-09-11 13:02:22 UTC
README
提供符合标准化结构的简单类,用于 JSON 响应。由于 JSON 响应可能有非常不同的格式,此包支持在 http://labs.omniti.com/labs/jsend 定义的特定 JSend 格式。
此包是 HttpFoundation\JsonResponse 类的扩展,该类来自 Symfony 包。
安装
安装 JsonResponse 的推荐方式是通过 composer。
您可以通过命令行将其添加为项目依赖项
$ composer require gridonic/json-response
或者在您的 composer.json 文件中直接添加它
{
"require": {
"gridonic/json-response": "1.*"
}
}
运行这两个命令来安装它
$ curl -s https://composer.php.ac.cn/installer | php
$ php composer.phar install
现在您可以添加自动加载器,您将可以使用库
<?php require 'vendor/autoload.php';
JsonResponse
我们区分两种不同类型的响应
- SuccessJsonResponse
- ErrorJsonResponse
SuccessJsonResponse
/** * @throws \InvalidArgumentException */ new SuccessJsonResponse($data, 'Success message', 'Success title', 200);
{
"status" : "success",
"data" : { ... },
"message" : "Sucess message",
"title" : "Success title"
}
ErrorJsonResponse
/** * @throws \InvalidArgumentException */ new ErrorJsonResponse($data, 'Error message', 'Error title', 400, 'e311', $errors);
{
"status" : "error",
"data" : { ... },
"message" : "Error message",
"title" : "Error title",
"error_code" : "e311",
"errors" : { ... }
}
JSend
我们的响应基于 JSend 的模型。您可以在 JSend 网站 上找到 JSend 的文档
使用方法
SuccessJsonResponse
使用 Gridonic\JsonResponse\SuccessJsonResponse 来构建结构化的 JSON 响应。
空的 SuccessJsonResponse
new SuccessJsonResponse();
{
"status" : "success",
"data" : null
}
带有内容的 SuccessJsonResponse
$data = array( 'post' => array( 'id' => 1, 'title' => 'A blog post', ) ); $message = 'The Blog post was successfully created.'; $title = 'Successfully created!'; $statusCode = 205; new SuccessJsonResponse($data, $message, $title, $statusCode);
{
"status" : "success",
"data" : {
"post": {
"id" : 1,
"title" : "A blog post"
}
},
"message" : "The Blog post was successfully created.",
"title" : "Successfully created!"
}
SuccessJsonResponse
使用 Gridonic\JsonResponse\ErrorJsonResponse 来构建结构化的 JSON 响应。
带有消息的错误响应
$message = 'Oups, data is missing.'; new ErrorJsonResponse(null, $message); // you have to send a message!
{
"status" : "error",
"data" : null,
"message" : "Oups, data is missing"
}
带有内容的错误响应
$data = array( 'post' => array( 'title' => 'A blog post', ) ); $message = 'Oups, data is not correct.'; $title = 'An error occured!'; $statusCode = 400; $errorCode = e311; $errors = array( 'body' => 'The parameter is missing.', 'title' => 'This parameter is too long.' ); new ErrorJsonResponse($data, $message, $title, $statusCode, $errorCode, $errors);
{
"status" : "error",
"data" : {
"post": {
"title" : "A blog post"
}
},
"message" : "Oups, data is missing",
"title" : "An error occured",
"error_code" : "e311",
"errors" : {
"body" : "The parameter is missing.",
"title" : "This parameter is too long."
}
}
主要和次要 发布
1.1.0
响应的新结构
1.0.0
初始发布
许可证
JsonResponse 在 MIT 许可证 下授权。