【问题标题】:Moqui: How to add an extra Header in JSON Request?Moqui:如何在 JSON 请求中添加额外的 Header?
【发布时间】:2015-07-14 05:11:44
【问题描述】:

我正在尝试构建 Moqui 服务以从远程 REST JSON api 拉取和推送数据,但他们要求我使用自定义标头进行身份验证,例如 X-App-Access-Token: {access_token} 从服务调用 API 时,我似乎找不到添加此标头的方法?

<service verb="get" noun="Orders" type="remote-json-rpc" location="https://example.com/admin/orders.json"> <in-parameters> <parameter name="marketplaceId"/> <parameter name="accessToken"/> </in-parameters> <actions> <service-call name="create#mantle.order.OrderHeader" in-map="context" out-map="context"/> </actions> </service>

感谢您的帮助!

山姆

【问题讨论】:

  • 如何完成这在很大程度上取决于您当前访问服务的方式以及使用哪种编程。分享一些代码,告诉我们你尝试了什么。
  • 刚刚更新了一个我开始写的服务示例。谢谢!

标签: json api rest moqui


【解决方案1】:

首先一些注意事项:您设置服务的方式调用远程 JSON RPC 服务,通常最好有一个单独的服务调用此服务和另一个本地服务来创建订单。对于更复杂的数据结构,例如订单,通常最好调用其中一项服务(例如创建 OrderHeader 和一个 OrderPart 的 OrderServices.create#Order),而不是简单的 crud 隐式定义的自动实体服务。

像这样作为远程 JSON-RPC 服务的占位符的本地服务设置由 RemoteJsonRpcServiceRunner.runJsonService() 方法处理。该方法是静态的,您也可以直接调用它。它调用 StupidWebUtilities.simpleHttpStringRequest() 方法,这是 HttpClient 东西所在的地方,您需要在其中添加自定义标头。

在当前代码中没有办法做到这一点。上面提到的两种方法可以扩展为支持附加标头 Map 之类的东西,这可能不是一个坏主意,因为它在其他场景中可能很有用。您也可以编写自己的方法或服务脚本 sn-p 来完成这些操作,这是相当简单的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2021-04-10
    相关资源
    最近更新 更多