Compare commits

...

5 Commits

Author SHA1 Message Date
李东云
2a59a51f8b chore(release): 0.2.15 2023-04-13 15:38:50 +00:00
李东云
5e5792b28c feat: 默认绑定 CoreMiddleware 的映射关系 2023-04-13 23:38:38 +08:00
李东云
a6b71dbb03 fix(coreMiddleware): 修复restful 无法分页的问题 2023-04-13 23:37:18 +08:00
李东云
d836186296 chore(release): 0.2.14 2023-04-12 09:36:26 +00:00
李东云
e69c1494c3 feat(handler): 补充 restful 响应的状态码 2023-04-12 17:36:15 +08:00
6 changed files with 33 additions and 5 deletions

View File

@@ -1,4 +1,23 @@
# 版本更新日志
### [0.2.15](http://124.126.16.154:8888/singularity/HyperfDevelopmentKitCore/compare/v0.2.14...v0.2.15) (2023-04-13)
### 🐛 Bug Fixes | Bug 修复
* **coreMiddleware:** 修复restful 无法分页的问题 ([a6b71db](http://124.126.16.154:8888/singularity/HyperfDevelopmentKitCore/commit/a6b71dbb037624ac69eddc1e5b1d671ab45b06ae))
### ✨ Features | 新功能
* 默认绑定 CoreMiddleware 的映射关系 ([5e5792b](http://124.126.16.154:8888/singularity/HyperfDevelopmentKitCore/commit/5e5792b28ca13cc8833280ba3d26ec588c445350))
### [0.2.14](http://124.126.16.154:8888/singularity/HyperfDevelopmentKitCore/compare/v0.2.13...v0.2.14) (2023-04-12)
### ✨ Features | 新功能
* **handler:** 补充 restful 响应的状态码 ([e69c149](http://124.126.16.154:8888/singularity/HyperfDevelopmentKitCore/commit/e69c1494c3ec0a8d26341f1891d7d067511e8baf))
### [0.2.13](http://124.126.16.154:8888/singularity/HyperfDevelopmentKitCore/compare/v0.2.12...v0.2.13) (2023-04-11)

View File

@@ -1 +1 @@
0.2.13
0.2.15

View File

@@ -111,5 +111,5 @@
"url": "https://mirrors.cloud.tencent.com/composer/"
}
},
"version": "0.2.13"
"version": "0.2.15"
}

View File

@@ -14,8 +14,10 @@ namespace Singularity\HDK\Core;
use Hyperf\Contract\StdoutLoggerInterface;
use Hyperf\Framework\Logger\StdoutLogger;
use Hyperf\HttpServer\Contract\CoreMiddlewareInterface;
use Singularity\HDK\Core\Listener\EmailWillSentListener;
use Singularity\HDK\Core\Listener\SmsWillSentListener;
use Singularity\HDK\Core\Middleware\CommonCoreMiddleware;
class ConfigProvider
{
@@ -27,6 +29,7 @@ class ConfigProvider
// 合并到 config/autoload/dependencies.php 文件
'dependencies' => [
StdoutLoggerInterface::class => StdoutLogger::class,
CoreMiddlewareInterface::class => CommonCoreMiddleware::class
],
// 合并到 config/autoload/annotations.php 文件
'annotations' => [

View File

@@ -31,6 +31,8 @@ use RedisException;
use Singularity\HDK\Core\Constants\CommonErrorCode;
use Singularity\HDK\Core\Exceptions\ValidateException;
use Symfony\Component\Mailer\Exception\TransportException;
use Teapot\StatusCode\All;
use Teapot\StatusCode\RFC\RFC4918;
use Teapot\StatusCode\RFC\RFC7231;
use Throwable;
@@ -93,9 +95,11 @@ class CommonHandler extends ExceptionHandler
}
// 验证失败
if ($throwable instanceof BadRequestHttpException) {
$status_code = RFC4918::UNPROCESSABLE_ENTITY;
$data = [$code_name => CommonErrorCode::REQUEST_PARAMS_ERROR, $message_name => $is_testing ? $throwable->getMessage() : CommonErrorCode::getMessage(CommonErrorCode::SERVER_ERROR)];
}
if ($throwable instanceof ValidationException) {
$status_code = RFC4918::UNPROCESSABLE_ENTITY;
$data = $throwable->validator->errors()->first();
if (is_numeric($data)) {
$code = (int) $data;
@@ -104,6 +108,7 @@ class CommonHandler extends ExceptionHandler
$data = [$code_name => $code ?? CommonErrorCode::REQUEST_PARAMS_ERROR, $message_name => $data];
}
if ($throwable instanceof ValidateException) {
$status_code = RFC4918::UNPROCESSABLE_ENTITY;
$code = $throwable->getCode();
$message = $throwable->getMessage();
$data = [$code_name => $code, $message_name => empty($message) ? CommonErrorCode::getMessage($code, ['param' => $throwable->getFieldName()]) : $message];
@@ -116,14 +121,14 @@ class CommonHandler extends ExceptionHandler
if ($throwable instanceof NotFoundHttpException) {
$code = CommonErrorCode::ROUTE_NOT_FOUND;
$data = [$code_name => $code, $message_name => CommonErrorCode::getMessage($code)];
$status_code = 404;
$status_code = RFC7231::NOT_FOUND;
}
// 模型不存在
if ($throwable instanceof ModelNotFoundException) {
$code = empty($throwable->getCode()) ? CommonErrorCode::MODEL_NOT_FOUND : $throwable->getCode();
$message = empty($throwable->getCode()) ? CommonErrorCode::getMessage($code, ['resource' => '资源']) : $throwable->getMessage();
$data = [$code_name => $code, $message_name => $message];
$status_code = 404;
$status_code = RFC7231::NOT_FOUND;
}
// 300 服务出错
// 303 缓存异常

View File

@@ -73,11 +73,12 @@ class CommonCoreMiddleware extends CoreMiddleware
'last'
);
$fact_response = $this->utilsService->extendLinkToHeader($fact_response, $response->url(1), 'first');
return $this->utilsService->extendLinkToHeader(
$fact_response = $this->utilsService->extendLinkToHeader(
$fact_response,
$response->previousPageUrl(),
'prev'
);
return $fact_response->withBody(new SwooleStream(Json::encode($response->items())));
}
return parent::transferToResponse($response, $request);