WSO2 Data Service, Enterprise Integrator и Data Mapper. - PullRequest
0 голосов
/ 01 ноября 2018

Я создал службу данных (DS) и выставляю данные как ресурс REST. и я мог бы успешно получить данные с помощью команды CURL, приведенной ниже.

curl -X GET -H "Accept: application/json" http://localhost:8280/services/TestDataService.HTTPEndpoint/Member/0

Шаблон ресурса REST API: Member / {MemberID} - Конечная точка DS

Ответ:

{"Members":{"Email":"example@test.com","FirstName":"Mad","MembershipCategory":"Gold","InsuranceType":"Health","LastName":"Tim"}}

Затем я захотел преобразовать этот ответ JSON в CSV, используя посредник WSO2 EI Data Mapper . Я знаю, что есть альтернативные способы достижения этого варианта использования с помощью других посредников или менеджера API WSO2.

Я создал еще один ресурс API в EI WSO2 с шаблоном

/ convertDetails / Member / {MemberID} - EI Endpoint

Во всяком случае, при следующих настройках я не смог получить правильный ответ, когда я вызываю ресурс REST API из REST-клиента.

Вот мой поток посредничества,

enter image description here

<?xml version="1.0" encoding="UTF-8"?>
<api context="/convertDetails" name="MemberDetailsConversion" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="GET" uri-template="/Member/{MemberID}">
        <inSequence>
            <log description="Request Log" level="full"/>
            <send>
                <endpoint>
                    <http method="get" uri-template="http://localhost:8280/services/TestDataService.HTTPEndpoint/Member/{uri.var.MemberID}"/>
                </endpoint>
            </send>
        </inSequence>
        <outSequence>
            <datamapper config="gov:datamapper/MemberDetailsMapping.dmc" inputSchema="gov:datamapper/MemberDetailsMapping_inputSchema.json" inputType="JSON" outputSchema="gov:datamapper/MemberDetailsMapping_outputSchema.json" outputType="CSV"/>
            <log description="Response Log" level="full"/>
            <respond/>
        </outSequence>
        <faultSequence/>
    </resource>
</api>

Но все же, когда я вызываю конечную точку ресурса EI REST, http://localhost:8280/convertDetails/Member/0, это дает мне ОШИБКУ. Я извлек первые несколько строк стека ниже.

[2018-11-01 10:30:30,817] [EI-Core] ERROR - DBInOutMessageReceiver Error in in-out message receiver
DS Code: INCOMPATIBLE_PARAMETERS_ERROR
Nested Exception:-
javax.xml.stream.XMLStreamException: DS Fault Message: Error in 'CallQuery.extractParams', cannot find parameter with type:query-param name:MemberID
DS Code: INCOMPATIBLE_PARAMETERS_ERROR
Source Data Service:-
Name: TestDataService
Location: /Users/mad/Documents/wso2ei-6.3.0/wso2/tmp/carbonapps/-1234/1541088489969TestDataServiceProjectCompositeApplication_1.0.0.car/TestDataService_1.0.0/TestDataService-1.0.0.dbs
Description: N/A
Default Namespace: http://ws.wso2.org/dataservice
Current Request Name: _getmember_memberid
Current Params: {}

Я предполагаю, что что-то пропустил в конфигурации. Буду признателен за вашу помощь в этом.

...