如何将 HTTP 响应传递给 JSON?
How to pass HTTP response to JSON?
我正在开发一个代码库,其中控制器具有以下代码行。控制器检查异常,如果没有错误return JSON 响应,否则抛出异常错误。
return $this->exception->tryCatch(
fn () => $this->json(
$this->customer->addUser()
)
);
public function tryCatch(callable $work): Response
{
try {
return $work();
} catch (Throwable $e) {
throw $exception;
}
}
但这总是会产生 200 个响应。如果我需要不同的响应(201),我该如何调整这段代码。我被要求不要破坏代码结构。所以在这里询问任何建议。
/**
* Returns a JsonResponse that uses the serializer component if enabled, or json_encode.
*/
protected function json($data, int $status = 200, array $headers = [], array $context = []): JsonResponse
json
方法的第二个参数获取响应的状态。默认是200,你可以自己指定。
例如:
$this->json($this->customer->addUser(), 201);
我正在开发一个代码库,其中控制器具有以下代码行。控制器检查异常,如果没有错误return JSON 响应,否则抛出异常错误。
return $this->exception->tryCatch(
fn () => $this->json(
$this->customer->addUser()
)
);
public function tryCatch(callable $work): Response
{
try {
return $work();
} catch (Throwable $e) {
throw $exception;
}
}
但这总是会产生 200 个响应。如果我需要不同的响应(201),我该如何调整这段代码。我被要求不要破坏代码结构。所以在这里询问任何建议。
/**
* Returns a JsonResponse that uses the serializer component if enabled, or json_encode.
*/
protected function json($data, int $status = 200, array $headers = [], array $context = []): JsonResponse
json
方法的第二个参数获取响应的状态。默认是200,你可以自己指定。
例如:
$this->json($this->customer->addUser(), 201);