在apigility中触发RPC控制器中的REST请求

Posted

技术标签:

【中文标题】在apigility中触发RPC控制器中的REST请求【英文标题】:Trigger REST request in RPC Controller in apigility 【发布时间】:2014-12-02 14:40:26 【问题描述】:

考虑到 REST 和 RPC 调用之间的差异并将它们应用于 apigility 我想将注册操作实现为 RPC 调用,它通过 POST /user 添加用户,触发操作电子邮件提交并分离要添加的数据一些特定信息到第二个端点。

现在我的问题是: 什么是最有效的方法以及如何在 apigility 的 RPC 请求中实际触发 REST 请求。

流程应该是这样的:

POST /register -> 创建用户(POST /user),发送激活邮件,通过 curl 调用另一个 API,向此用户配置文件添加数据 -> 返回用户数据

我需要 curl 我自己的 api 还是我可以在 apigility 中传递请求? /user 端点是一个简单的数据库连接的 REST 资源,并且经过测试和功能。

同样重要的是,我想为 POST /user 添加授权,因为我们在其中存储了一些数据,例如验证时间戳和其他受限信息,一旦通过身份验证或通过(过滤和处理)RPC 调用就可以访问这些数据。

【问题讨论】:

【参考方案1】:

您只需要使用相应的别名调用服务,然后将您的 api 配置显示在:

'zf-apigility' => array(
    'db-connected' => array(
         'DBConnectedResource' => array(
            (...)
        ),
     ),
 ),

这里,别名是DBConnectedResource...$this->getServiceLocator()->get('DBConnectedResource') 将完成这项工作;)

【讨论】:

好的,让我重新表述我最初的问题:如何访问处理我选择的连接数据库的 rest 控制器请求的服务?我完全了解这一切,只是不知道 apigility 为其 db 连接的 rest 控制器创建了哪些服务,以及如何在 rpc 控制器中正确使用它们。 答案已更新,我没有对其进行测试,但应该可以。如果可行,请更新您的问题;)

以上是关于在apigility中触发RPC控制器中的REST请求的主要内容,如果未能解决你的问题,请参考以下文章

如何在apigility中正确设置子路线?

在 python 中使用 subprocess 或 rpc / rest 与另一个程序通信?

RPC接口与REST对比

如何配置 Apigility 以发送 HMAC-Authorization 响应标头?

REST API + hacks/REST + RPC 混合。我做对了吗?

将REST和RPC混合在一起是不好的做法?