当前位置: 首页 > 编程笔记 >

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

贝研
2023-03-14
本文向大家介绍PHP使Laravel为JSON REST API返回自定义错误的问题,包括了PHP使Laravel为JSON REST API返回自定义错误的问题的使用技巧和注意事项,需要的朋友参考一下

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

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

Array
(
  [code] => 401
  [message] => "Invalid User"
)

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

去你的app / start / global.php.

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

App::error(function(Exception $exception, $code)
{
  Log::error($exception);
  $message = $exception->getMessage();
  // switch statements provided in case you need to add
  // additional logic for specific error code.
  switch ($code) {
    case 401:
      return Response::json(array(
          'code'   => 401,
          'message'  => $message
        ), 401);
    case 404:
      $message      = (!$message ? $message = 'the requested resource was not found' : $message);
      return Response::json(array(
          'code'   => 404,
          'message'  => $message
        ), 404);    
  }
});

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

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

有点像:

html" target="_blank">public static function error($code = 400, $message = null)
{
  // check if $message is object and transforms it into an array
  if (is_object($message)) { $message = $message->toArray(); }
  switch ($code) {
    default:
      $code_message = 'error_occured';
      break;
  }
  $data = array(
      'code'   => $code,
      'message'  => $code_message,
      'data'   => $message
    );
  // return an error
  return Response::json($data, $code);
}

总结

以上所述是小编给大家介绍的PHP使Laravel为JSON REST API返回自定义错误的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 故事是,我创建了一个自定义 API 路由 ,用于提取任何帖子类型的帖子。在本地,它可以完美地工作(MAMP),但在多个生产服务器(不同的环境)上,它会返回500错误。 适用于本地的API路由: http://wordpress.local/wp-json/wp-post-modal/v1/any-post-type?slug=modal-页 生产中的API路由示例(表明API路由确实存在): <

  • 我想拦截一个错误的JSON输入,并使用Dropwizard应用程序返回自定义错误消息。我遵循了这里提到的定义自定义异常映射器的方法:http://gary-rowe.com/agilestack/2012/10/23/how-to-implement-a-runtimeexceptionmapper-for-dropwizard/。但它不适合我。同样的问题也被问到这里https://groups.

  • 我有一个配置,我想从指定位置返回自定义错误。然而,我收到的却是标准的nginx错误页面。不过,我可以从未命名的位置获取自定义错误。 为了重现这个问题,我创建了这个简单的基于docker的设置: Dockerfile: 违约形态: 50x错误在这里并不有趣,我已经从nginx docker映像中调整了配置。 使用404以外的东西重定向到指定位置并没有什么区别。 404.html: 然后启动docke

  • 这里有一些代码来表明我的意图(Meter是一个域类): 我想出了几种处理这个问题的方法。首先,有可能创建类似 然后使用异常处理程序来呈现自定义的errorpage(可能包含到仪表列表的链接或任何合适的内容)。 但是使用这个解决方案,我必须重复许多控制器方法的前5行(如edit、delete)。 有没有一种优雅的方法来防止重复这些行很多次?

  • 问题内容: 我正在寻找一种干净的方法,当找不到请求的资源时,在Spring 4中返回自定义的404错误页面。对不同域类型的查询应导致不同的错误页面。 这里有一些代码可以表明我的意图(Meter是一个域类): 我想象有几种解决问题的方法。首先,有可能创建像 然后使用异常处理程序呈现自定义错误页面(可能包含指向仪表列表的链接或适当的链接)。 但是我不喜欢使用许多小异常来污染我的应用程序。 另一种可能性

  • 我部署基本Laravel项目到服务器。当我点击我的域名,它返回默认的欢迎视图。当我把简单的道路(见下文)添加到代码中,并尝试在浏览器中输入该路线时,它会返回500个内部错误。除"/"根路由外,所有路由都返回500错误。 文件夹结构: Laravel文件位于Laravel目录中,但来自公共目录的文件位于api目录中。 .api目录中的htaccess文件: 存储目录和其中的所有内容对任何人都是可写、