Как вызвать адаптер платформы MobileFirst с помощью команды PUT?

Это похоже на вопрос, заданный здесь, но этот вопрос точно не ответили, в чем проблема.

Клиент.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 Run As | Вызовите MobileFirst Adapter, пользовательский интерфейс отображает только метод GET, для PUT нет возможности.

Итак, ответ, что GET на самом деле выполнит PUT, или это ошибка, или есть параметр конфигурации, который мне не хватает?

введите здесь описание изображения


person Ken Nelson    schedule 10.06.2015    source источник


Ответы (2)


Я думаю, вы путаете, как вы вызываете/тестируете адаптер, с тем, какой глагол он использует в вызываемой серверной системе. Вы тестируете/вызываете его с помощью GET, но затем адаптер вызывает вашу серверную систему — http://kenatibm.cloudant.com/backendsystem — с помощью PUT.

В целом это то же самое объяснение, которое дал Дейв в предыдущем вопросе.

person Andrew Ferrier    schedule 10.06.2015
comment
Тогда у меня два вопроса. Зачем называть это типом вызова REST? И зачем вообще иметь переменную, если она всегда будет GET? - person Ken Nelson; 10.06.2015
comment
Я согласен, что ярлыки сбивают с толку. Тем не менее, поля в этом диалоговом окне описывают, как вызывается адаптер, а не то, как он вызывает серверную службу. - person Andrew Ferrier; 10.06.2015

Короче говоря, ответ заключается в том, что GET на самом деле выполнит PUT.

Параметры передаются адаптеру в запросе GET, а затем адаптер создает запрос PUT для выполнения фактической процедуры. В вашем коде вы можете видеть, как «param1» передается мастером функции, а затем устанавливается в качестве «содержимого» запроса PUT. Это определенно немного сбивает с толку.

person Kyle Woodward    schedule 10.06.2015