RestfulResponse.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace App\Traits;
  3. use Illuminate\Http\Resources\Json\JsonResource;
  4. trait RestfulResponse
  5. {
  6. /**
  7. * 返回 201 已创建 响应
  8. *
  9. * @param null|string|array $data
  10. * @param array $headers
  11. *
  12. * @return \Illuminate\Http\JsonResponse
  13. */
  14. protected function created($data = null, array $headers = [])
  15. {
  16. return response()->json($data, 201, $headers);
  17. }
  18. /**
  19. * 返回 204 无内容 响应
  20. *
  21. * @param array $headers
  22. *
  23. * @return \Illuminate\Http\JsonResponse
  24. */
  25. protected function noContent(array $headers = [])
  26. {
  27. return response()->json(null, 204, $headers);
  28. }
  29. /**
  30. * 返回 200 OK 响应
  31. *
  32. * @param mixed $data
  33. * @param array $headers
  34. *
  35. * @return \Illuminate\Http\JsonResponse
  36. */
  37. protected function ok($data = null, array $headers = [])
  38. {
  39. if ($data instanceof JsonResource) {
  40. return $data->response()->withHeaders($headers)->setStatusCode(200);
  41. } else {
  42. return response()->json($data, 200, $headers);
  43. }
  44. }
  45. /**
  46. * 返回 400 Bad Request 响应
  47. *
  48. * @param string $message
  49. *
  50. * @return \Illuminate\Http\JsonResponse
  51. */
  52. protected function error(string $message = '')
  53. {
  54. return response()->json(['message' => $message], 400);
  55. }
  56. }