rigsto/api-http-status

API使用中的HTTP状态码和资源

v1.4 2024-01-29 14:26 UTC

This package is auto-updated.

Last update: 2024-09-29 16:01:43 UTC


README

run-tests Latest Version Packagist Version PHP Version Required MIT License

一个简单的枚举类,用于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 是必需的,但 messagedata 是可选的。如果 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
    }
  }
}