如何使用 PUT 调用 MobileFirst 平台适配器?

How do I invoke a MobileFirst Platform Adapter using PUT?

这与 提出的问题类似,但该问题并未准确回答问题所在。

Customer.xml

<?xml version="1.0" encoding="UTF-8"?>
<wl:adapter name="Customer"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:wl="http://www.ibm.com/mfp/integration"
    xmlns:http="http://www.ibm.com/mfp/integration/http">

    <displayName>Customer</displayName>
    <description>Customer</description>
    <connectivity>
        <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
            <protocol>https</protocol>
            <domain>kenatibm.cloudant.com</domain>
            <port>443</port>
        </connectionPolicy>
    </connectivity>

    <procedure name="addCustomer"> </procedure>

</wl:adapter>

客户-impl.js

function addCustomer(param1) {

    var input = {
        method : 'PUT',
        returnedContentType : 'json',
        path : 'userInputRequired',
        body : {
            contentType: 'application/json',
            content : param1
        }
    };

    return WL.Server.invokeHttp(input);
}

问题是,即使我已将方法定义为 PUT,在使用 File 运行 As | 进行测试时调用 MobileFirst Adapter 用户界面只显示 GET 方法,没有 PUT 选项。

GET 实际上会执行 PUT 的答案是错误还是我缺少配置参数?

我认为您混淆了如何 invoke/test 适配器,以及它在调用的后端系统上使用的动词。您 testing/invoking 它使用 GET,但适配器随后调用您的后端系统 - http://kenatibm.cloudant.com/backendsystem - 使用 PUT。

这与 的解释大致相同。

简而言之,答案是 GET 实际上会执行 PUT。

参数在 GET 请求中传递给适配器,然后适配器构造 PUT 请求以执行实际过程。在您的代码中,您可以看到向导如何将 'param1' 传递给函数,然后将其设置为 PUT 请求的 'content'。这肯定有点令人困惑。