2

我正在尝试构建一个 Moqui 服务以从远程 REST JSON api 中提取和推送数据,但他们要求我使用自定义标头进行身份验证,例如 X-App-Access-Token: {access_token},当从服务?

<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>

谢谢你的帮助!

山姆

4

1 回答 1

0

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

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

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

于 2015-07-15T16:35:17.460 回答