【问题标题】:change error type in REST api更改 REST api 中的错误类型
【发布时间】:2015-03-18 06:24:07
【问题描述】:

我已经使用 slim 框架在 php 中准备了 RESTful API。它的工作完全正常。

但是对于我的代码,如果用户错过了 REQUEST_METHOD,那么它会触发 Object not found 错误。

例如,对于 url http://localhost/task_manaager/v1/storeavatar :它的请求类型是 POST 但如果我们将请求类型设置为 GET 它会触发 Object not found 错误。

我需要自定义错误处理并使用特定的错误代码和错误消息。

请帮帮我,我被困在这里。

【问题讨论】:

  • 你应该显示相关的代码伙伴。
  • 你能解释一下你所说的代码伙伴是什么意思吗? @达伦
  • 你说你使用$_SERVER['REQUEST_METHOD'],所以向我们展示你如何使用它,以及你如何将数据发送到你的api。
  • 我实际上并没有使用 $_SERVER['REQUEST_METHOD'],因为我使用的是超薄框架。我对 POST 请求使用 $app->post 对象,对 GET 请求使用 $app->get。所以我认为这将由苗条处理。此外,如果我为发布 URL 设置请求类型 GET,它会触发此错误。我需要将错误更改为“不正确的请求类型”。对于数据发送,我使用chrome.google.com/webstore/detail/advanced-rest-client/… chrome 扩展

标签: php .htaccess rest slim


【解决方案1】:

您可以对不同的请求类型使用单个路由,如下所示:

$app->map('/task_manaager/v1/storeavatar', function() use ($app){
    if($app->request()->isPost()) {
        //It is a POST request
    } else {
        //It is a GET request
    }
})->via('GET','POST');

这一切都在 Slim 框架的文档中:http://docs.slimframework.com/#Custom-HTTP-Methods

【讨论】:

  • 感谢 tuim,这是最好的解决方案,但是否可以识别请求类型并抛出错误代码。因为我已经开发了太多的调用,并且为所有代码更改所有代码会非常混乱。 :(
  • 不这么认为。如果您使用中间件,您仍然需要在应用中调整您的路由。
猜你喜欢
  • 2017-06-16
  • 1970-01-01
  • 2014-07-01
  • 1970-01-01
  • 2015-09-02
  • 2019-05-27
  • 1970-01-01
  • 2021-06-04
  • 1970-01-01
相关资源
最近更新 更多