Как использовать маршрутизатор APIKit для использования локальных файлов raml и json для отображения соответствующего ответа GET в Postman? - PullRequest
0 голосов
/ 07 октября 2019

Я создал RAML и пример JSON-файла на платформе Anypoint и сгенерировал поток, используя RAML-файл, являющийся маршрутизатором APIKit. Вот мое содержимое файла RAML:

 #%RAML 0.8
 ---
 title: TestEmployee API
 version: v1

 /employee:
   get:
    queryParameters:
      id:
       displayName: Employee id
       required: true
      name:
       displayName: Employee name
       required: false
    responses:
     200:
      body:
        application/json:
         example: !include EmployeeExample.json

И пример JSON:

[{
"id": 1,
"name":"Charles",
"code": "C1ENU00",
"dateofjoining":"2019/06/24",
"domain":"ENU",
"address":"Hyderabad",
"phone": 9865458936,
"program": "WASE"
},
{
"id": 2,
"name":"John",
"code": "C2DIG00",
"dateofjoining":"2019/06/24",
"domain":"DIGITAL",
"address":"Chennai",
"phone": 9756359864,
"program": "ELITE"
}
]

Я хочу использовать маршрутизатор Choice для маршрутизации сообщений в соответствии с условием, чтобы «id» и'name' из параметров запроса даст ответы JSON, содержащие только эти 'id' и 'name'. Пожалуйста, помогите мне в создании соответствующих потоков и выражений Dataweave, если таковые имеются.

1 Ответ

1 голос
/ 07 октября 2019

Вам не нужен маршрутизатор выбора только для этого. APIKit - это сам маршрутизатор, который маршрутизирует в соответствии с методом и конечной точкой из URL. Когда вы строите потоки, используя RAML, он создает фиктивный поток для конечной точки сотрудника GET. Вам просто нужно заменить содержимое этого потока логикой, чтобы запросить информацию из некоторого места, возможно, используя соединитель.

Пример: автоматически сгенерированный поток Studio будет иметь имя типа «get: \ employee:Приложение \ JSON: MYAPP». Вы можете заменить содержимое по умолчанию преобразованием DataWeave, чтобы вернуть указанный список:

 <flow name="get:\employee:application\json:myApp">
        <ee:transform xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
            <ee:message>
                <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
[
   {
    id: 1,
    name:"Charles",
    code: "C1ENU00",
    dateofjoining:"2019/06/24",
    domain:"ENU",
    address:"Hyderabad",
    phone: 9865458936,
    program: "WASE"
   },
   {
    id: 2,
    name:"John",
    code: "C2DIG00",
    dateofjoining:"2019/06/24",
    domain:"DIGITAL",
    address:"Chennai",
    phone: 9756359864,
    program: "ELITE"
   }
]
]]></ee:set-payload>
                </ee:message>
            </ee:transform>
        </flow>
...