【问题标题】:Restler doesn't auto route required parameters in URLRestler 不会在 URL 中自动路由所需的参数
【发布时间】:2014-12-02 14:15:56
【问题描述】:

我正在使用 Restler 3,并且正在尝试一个非常基本的 URL 路由:

GET /method/{param}

我的 api 类方法将 param 作为第一个必需参数,但只有当我通过请求传递它时他才会得到它 (GET /method?param=value)

从路由文档(链接:http://restler3.luracast.com/examples/_006_routing/readme.html)看来,这应该是默认行为。我也尝试过使用Defaults::$smartAutoRouting = false;,但这似乎不起作用。

从 Restler 3 开始,在可选的地方创建智能自动路线 参数将被映射到查询字符串,必需的原始类型 将被映射到 url 路径,对象 ana 数组将被映射到 请求正文。

【问题讨论】:

  • 只是为了确定,您使用的是以下格式吗? @url GET /method/{param} 使用 RC5 还是 RC6?
  • @Luracast 我不确定。你能解释一下 RCx 是什么,我怎么知道是哪一个?您的格式(添加 @url)部分适用于我,它确实将 {param} 路由到所需的参数,但它从 API-explorer 中删除了可选参数并添加了 REQUEST_BODY
  • 更具体地说,如果我的方法看起来像:function foo($reqParam, $optionalParam1=null, $optionalParam2=null) 并且我放了一个 phpdoc @url GET /{reqParam}/method optionalParam1optionalParam2 不会作为可选字段出现在 API 资源管理器中,而是添加了REQUEST_BODY
  • 您可以通过打开 Restler.php 文件并查看其 cmets 来找到版本。或通过 X-Powered-By 标头。从您上面的评论中,我可以确认您使用的是 RC5。此错误已在 github 的 V3 分支中的 RC6 中修复。当我们在 RC5 中修复它时,您可以将它与新的 Explorer 类一起使用。感谢您报告问题:)

标签: php api routing url-routing restler


【解决方案1】:

我们刚刚在 RC5 中修复了这个错误。下载更新并重试!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 2021-09-02
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多