rigsto / api-http-status
API使用中的HTTP状态码和资源
Requires
- php: ^8.1
- illuminate/http: ^9.0.0|^10.0.0
- illuminate/support: ^9.0.0|^10.0.0
- symfony/process: ^v6.4.0
Requires (Dev)
- phpunit/phpunit: ^9.1
This package is auto-updated.
Last update: 2024-09-29 16:01:43 UTC
README
一个简单的枚举类,用于HTTP状态码及其关联的API响应。
所有代码均来自 维基百科。
安装
使用composer
$ composer require rigsto/api-http-status
使用方法
Http状态码
枚举
<?php use Rigsto\ApiHttpStatus\HttpStatus; HttpStatus::OK; HttpStatus::NOT_FOUND; HttpStatus::INTERNAL_SERVER_ERROR; HttpStatus::BAD_REQUEST; HttpStatus::UNAUTHORIZED;
函数
getStatusCode()
将返回状态码。
getName()
将返回http名称。
getCategory()
将返回http类别。
isSuccess()
如果状态码是成功码,则返回true。
<?php use Rigsto\ApiHttpStatus\HttpStatus; $http = HttpStatus::OK; $http->getStatusCode(); // 200 $http->getName(); // Ok $http->getCategory(); // Success $http->isSuccess(); // true $http = HttpStatus::UNAUTHORIZED; $http->getStatusCode(); // 401 $http->getName(); // Unauthorized $http->getCategory(); // Client Error $http->isSuccess(); // false $http = HttpStatus::INTERNAL_SERVER_ERROR; $http->getStatusCode(); // 500 $http->getName(); // Internal Server Error $http->getCategory(); // Server Error $http->isSuccess(); // false
从代码生成Http状态
isValidCode()
如果代码有效,则返回true
,如果无效,则返回false
。
fromCode()
如果代码有效,则返回HttpStatus
对象,如果无效,则返回null
。
<?php use Rigsto\ApiHttpStatus\HttpStatus; $code = 200; $codeValidity = HttpStatus::isValidCode($code); // true $http = HttpStatus::fromCode($code); // HttpStatus::OK $code = 999 $codeValidity = HttpStatus::isValidCode($code); // false $http = HttpStatus::fromCode($code); // null
API响应
generateResponse(HttpStatus, ?message, ?data)
将返回包含http状态、消息和数据的json字符串。
HttpStatus
是必需的,但 message
和 data
是可选的。如果 message
为null,则消息将从http状态名称生成。
<?php use Rigsto\ApiHttpStatus\HttpStatus; use Rigsto\ApiHttpStatus\ApiResponse; $data = [...]; $response = ApiResponse::generateResponse(HttpStatus::OK, null, $data); // {"success": true, "code": 200, "message": "Ok", "data": [...]} $response = ApiResponse::generateResponse(HttpStatus::BAD_REQUEST, 'Custom Message', $data); // {"success": false, "code": 400, "message": "Custom Message", "data": [...]} $response = ApiResponse::generateResponse(HttpStatus::INTERNAL_SERVER_ERROR, null, null); // {"success": false, "code": 500, "message": "Internal Server Error", "data": null}
generateSuccessResponse(?message, ?data)
将返回包含http状态、消息和数据的json字符串。此方法与上面的函数相同,但它使用 HttpStatus::OK
作为http状态生成响应。
<?php use Rigsto\ApiHttpStatus\ApiResources; $data = [...]; $response = ApiResources::generateSuccessResponse(); // {"success": true, "code": 200, "message": "Ok", "data": null} $response = ApiResources::generateSuccessResponse(message: 'Custom Message'); // {"success": true, "code": 200, "message": "Custom Message", "data": null} $response = ApiResources::generateSuccessResponse(data: $data); // {"success": true, "code": 200, "message": "Ok", "data": [...]}
generateUnauthorizedResponse()
将返回包含未授权http状态和消息的json字符串。
<?php use Rigsto\ApiHttpStatus\ApiResources; $response = ApiResources::generateUnauthorizedResponse(); // {"success": false, "code": 401, "message": "Unauthorized", "data": null}
generatePaginationResponse(HttpStatus, ?message, ?data)
将返回包含http状态、消息和分页数据的json字符串。
函数概念与 generateResponse()
相同,但带有分页数据。
<?php use Rigsto\ApiHttpStatus\HttpStatus; use Rigsto\ApiHttpStatus\ApiResponse; $data = ["your data here" => "..."]; $response = ApiResponse::generatePaginationResponse(HttpStatus::OK, null, $data);
{ "success": true, "code": 200, "message": "Ok", "data": { "data": { "your data here":"..." }, "pagination": { "total": 50, "per_page": 10, "current_page": 1, "last_page": 5, "from": 1, "to": 10 } } }