Вот шаги с примером кода (с несколькими предположениями, указанными в конце):
- создать отображение RAML в
src/main/api
вашего * проекта:
#%RAML 0.8
---
title: sample
/YourServiceEndpoint
get:
responses:
200:
body:
application/json:
- Используйте APIKit Router в Mule, чтобы создать отображение в
src/main/app
. При этом используется GET
в соответствии с вопросом (вы можете заменить POST
или любым другим действием REST при написании интеграционных тестов для вашего варианта использования):
<!-- /api/v1 is defined in the APIKit configuration -->
<flow name="get:/api/v1/YourServiceEndPoint">
<http:inbound-endpoint exchange-pattern="request-response" connector-ref="HTTP_HTTPS" ref="HTTP" doc:name="HTTP"/>
<apikit:router config-ref="APIKitRouter" doc:name="APIkit Router"/>
<exception-strategy ref="Standard_Error_Responses" doc:name="Reference Exception Strategy"/>
<!-- do all other stuff here; for example -->
<when expression="#[payload.containsKey("resultSet1") && payload.get("resultSet1").size() > 0]">
<set-payload value="#[payload.get("resultSet1").get(0)]" doc:name="Set Payload"/>
<json:object-to-json-transformer doc:name="Object to JSON"/>
</when>
</flow>
- Выше
connector-ref
требует, чтобы ваша глобальная конфигурация (скорее всего, определенная как global-configuration.xml
в вашем проекте) имела фрагмент конфигурации, подобный следующему:
<https:connector name="HTTPS" enableCookies="true" cookieSpec="netscape" validateConnections="true" sendBufferSize="0" receiveBufferSize="0" receiveBacklog="0" clientSoTimeout="10000" serverSoTimeout="10000" socketSoLinger="0" doc:name="HTTP\HTTPS">
<https:tls-server path="${truststoreLocation}" storePassword="${truststorePassword}"/>
</https:connector>
Предположения:
Для APIKit Router требуется лицензия Enterprise от Mulesoft / Salesforce, в противном случае это не работает.
Пути фрагментов предполагают использование Maven. Выберите Project > Mavenize
, если ваш проект уже не поддерживает maven.
Это всего лишь предложение и не имеет отношения к вопросу. В сценарии использования указывается «огромная нагрузка на данные», что подразумевает, что архитектура должна обрабатывать ее по-разному - вам, вероятно, следует использовать SFTP вместо HTTP / HTTPS API.
Полезные заметки:
- В меню «Справка» приложения есть дополнительные примеры, демонстрирующие использование SOAP,
Callable
интерфейса и т. Д., Которые позволят вам двигаться вперед.