【问题标题】:Apigility v1.0.4 REST API GET methods no longer get valid parameter arrayApigility v1.0.4 REST API GET 方法不再获取有效的参数数组
【发布时间】:2014-08-29 09:07:33
【问题描述】:

我使用 Apigility 为我的 ZF2 项目生成代码连接的 REST API 包装器 - 它运行良好(除了在命令行上很容易解决的一些文件权限问题)。昨天我运行了一个作曲家更新,它将 Apigility 更新为 1.0.4,现在我的集合 GET 方法(带有签名 fetchAll($params = array()) 被一个空参数数组调用。我可以从 Firebug 控制台看到这些是仍然使用正确的参数浏览器端进行调用,因此看起来 Apigility 包装器处理已经改变了这一点。有没有人有任何知识或可以解释为什么这可能已经改变/破坏了?

我还发现,自从更新以来,我无法访问用于生成 API 包装器的 Apigility Admin UI,因为它无法加载并出现 ZF2 路由错误:

Fatal error: Uncaught exception 'Zend\Mvc\Router\Exception\RuntimeException' with message 'Part route may not terminate' in /private/var/www/vhosts/hamster.local/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/Part.php:202 Stack trace: 
#0 /private/var/www/vhosts/hamster.local/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/TreeRouteStack.php(351): Zend\Mvc\Router\Http\Part->assemble(Array, Array) 
#1 /private/var/www/vhosts/hamster.local/vendor/zendframework/zendframework/library/Zend/View/Helper/Url.php(100): Zend\Mvc\Router\Http\TreeRouteStack->assemble(Array, Array) 
#2 [internal function]: Zend\View\Helper\Url->__invoke('zf-apigility') 
#3 /private/var/www/vhosts/hamster.local/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php(399): call_user_func_array(Object(Zend\View\Helper\Url), Array) 
#4 /private/var/www/vhosts/hamster.local/vendor/zfcampus/zf-apigility-admin-ui/view/zf-apigility-ui.phtml(6): Zend\View\Renderer\PhpRenderer->__call('url', Array) 
#5 /private/v in /private/var/www/vhosts/hamster.local/vendor/zendframework/zendframework/library/Zend/Mvc/Router/Http/Part.php on line 202

再一次,除了 Apigility 的更新失败之外,我不知道是什么原因造成的。回归到 v1.0.3 解决了这两个问题,但我希望在 1.0.4 中有一些更新的功能。

非常感谢任何帮助!

【问题讨论】:

  • 检查您是否没有启用该模块两次,我在 application.config 和 development.config 中有它,它导致了这个问题。
  • fetchAll 方法上缺少的参数由 zf-rest 中新强制执行的要求解释和解决,以将模块配置中每个端点的方法参数列入白名单。这是一个简单的解决方案。 zf-apigility-admin 软件包的作者正在研究另一个问题,但目前我坚持使用旧版本。无论如何感谢您的帮助。

标签: php zend-framework2 laminas-api-tools


【解决方案1】:

要访问apigility admin,请转到文件:

供应商/zfcampus/zf-apigility-admin-ui/view/zf-apigility-ui.phtml

并将第 6 行和第 14 行注释掉。

可能路线有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    相关资源
    最近更新 更多