当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP使Laravel为JSON REST API返回自定义错误的问题

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-31 20:10:08 浏览: 评论:0 

这篇文章主要介绍了PHP使Laravel为JSON REST API返回自定义错误的问题,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下。

我正在开发某种RESTful API.发生一些错误时,我会抛出一个App :: abort($code,$message)错误.

问题是:我希望他用键“代码”和“消息”抛出一个json形成的数组,每个数组都包含上述数据.

  1. Array 
  2.   [code] => 401 
  3.   [message] => "Invalid User" 

有没有人知道是否可能,如果是,我该怎么做?

去你的app / start / global.php.

这将将401和404的所有错误转换为自定义json错误,而不是Whoops stacktrace.加这个:

  1. App::error(function(Exception $exception$code
  2.   Log::error($exception); 
  3.   $message = $exception->getMessage(); 
  4.   // switch statements provided in case you need to add 
  5.   // additional logic for specific error code. 
  6.   switch ($code) { 
  7.     case 401: 
  8.       return Response::json(array
  9.           'code'   => 401, 
  10.           'message'  => $message 
  11.         ), 401); 
  12.     case 404: 
  13.       $message      = (!$message ? $message = 'the requested resource was not found' : $message); 
  14.       return Response::json(array
  15.           'code'   => 404, 
  16.           'message'  => $message 
  17.         ), 404);     
  18.   } 
  19. }); 

这是处理此错误的众多选项之一.

制作API最好创建自己的帮助器,如Responser :: error(400,'damn'),扩展了Response类.

有点像:

  1. public static function error($code = 400, $message = null) 
  2.   // check if $message is object and transforms it into an array 
  3.   if (is_object($message)) { $message = $message->toArray(); } 
  4.   switch ($code) { 
  5.     default
  6.       $code_message = 'error_occured'
  7.       break
  8.   } 
  9.   $data = array
  10.       'code'   => $code
  11.       'message'  => $code_message
  12.       'data'   => $message 
  13.     ); 
  14.   // return an error 
  15.   return Response::json($data$code); 
  16. }

Tags: Laravel JSON REST API

分享到: