Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <mule xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:apikit="http://www.mulesoft.org/schema/mule/mule-apikit" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/mule-apikit http://www.mulesoft.org/schema/mule/mule-apikit/current/mule-apikit.xsd ">
- <apikit:config name="american-flights-api-config" api="american-flights-api.raml" outboundHeadersMapName="outboundHeaders" httpStatusVarName="httpStatus" />
- <flow name="american-flights-api-main">
- <http:listener config-ref="HTTP_Listener_config" path="/api/*">
- <http:response statusCode="#[vars.httpStatus default 200]">
- <http:headers>#[vars.outboundHeaders default {}]</http:headers>
- </http:response>
- <http:error-response statusCode="#[vars.httpStatus default 500]">
- <http:body>#[payload]</http:body>
- <http:headers>#[vars.outboundHeaders default {}]</http:headers>
- </http:error-response>
- </http:listener>
- <apikit:router config-ref="american-flights-api-config" />
- <error-handler>
- <on-error-propagate type="APIKIT:BAD_REQUEST">
- <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
- ---
- {message: "Bad request"}]]></ee:set-payload>
- </ee:message>
- <ee:variables>
- <ee:set-variable variableName="httpStatus">400</ee:set-variable>
- </ee:variables>
- </ee:transform>
- </on-error-propagate>
- <on-error-propagate type="APIKIT:NOT_FOUND">
- <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
- ---
- {message: "Resource not found"}]]></ee:set-payload>
- </ee:message>
- <ee:variables>
- <ee:set-variable variableName="httpStatus">404</ee:set-variable>
- </ee:variables>
- </ee:transform>
- </on-error-propagate>
- <on-error-propagate type="APIKIT:METHOD_NOT_ALLOWED">
- <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
- ---
- {message: "Method not allowed"}]]></ee:set-payload>
- </ee:message>
- <ee:variables>
- <ee:set-variable variableName="httpStatus">405</ee:set-variable>
- </ee:variables>
- </ee:transform>
- </on-error-propagate>
- <on-error-propagate type="APIKIT:NOT_ACCEPTABLE">
- <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
- ---
- {message: "Not acceptable"}]]></ee:set-payload>
- </ee:message>
- <ee:variables>
- <ee:set-variable variableName="httpStatus">406</ee:set-variable>
- </ee:variables>
- </ee:transform>
- </on-error-propagate>
- <on-error-propagate type="APIKIT:UNSUPPORTED_MEDIA_TYPE">
- <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
- ---
- {message: "Unsupported media type"}]]></ee:set-payload>
- </ee:message>
- <ee:variables>
- <ee:set-variable variableName="httpStatus">415</ee:set-variable>
- </ee:variables>
- </ee:transform>
- </on-error-propagate>
- <on-error-propagate type="APIKIT:NOT_IMPLEMENTED">
- <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
- ---
- {message: "Not Implemented"}]]></ee:set-payload>
- </ee:message>
- <ee:variables>
- <ee:set-variable variableName="httpStatus">501</ee:set-variable>
- </ee:variables>
- </ee:transform>
- </on-error-propagate>
- </error-handler>
- </flow>
- <flow name="american-flights-api-console">
- <http:listener config-ref="HTTP_Listener_config" path="/console/*">
- <http:response statusCode="#[vars.httpStatus default 200]">
- <http:headers>#[vars.outboundHeaders default {}]</http:headers>
- </http:response>
- <http:error-response statusCode="#[vars.httpStatus default 500]">
- <http:body>#[payload]</http:body>
- <http:headers>#[vars.outboundHeaders default {}]</http:headers>
- </http:error-response>
- </http:listener>
- <apikit:console config-ref="american-flights-api-config" />
- <error-handler>
- <on-error-propagate type="APIKIT:NOT_FOUND">
- <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
- ---
- {message: "Resource not found"}]]></ee:set-payload>
- </ee:message>
- <ee:variables>
- <ee:set-variable variableName="httpStatus">404</ee:set-variable>
- </ee:variables>
- </ee:transform>
- </on-error-propagate>
- </error-handler>
- </flow>
- <flow name="delete:\flights\(ID):american-flights-api-config">
- <ee:transform xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core">
- <ee:variables>
- <ee:set-variable variableName="ID">attributes.uriParams.'ID'</ee:set-variable>
- </ee:variables>
- </ee:transform>
- <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
- ---
- {
- message: "Flight deleted (but not really)"
- }]]></ee:set-payload>
- </ee:message>
- </ee:transform>
- </flow>
- <flow name="get:\flights:american-flights-api-config">
- <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,
- code: "ER38sd",
- price: 400,
- departureDate: "2017/07/26",
- origin: "CLE",
- destination: "SFO",
- emptySeats: 0,
- plane: {
- "type": "Boeing 737",
- totalSeats: 150
- }
- },
- {
- ID: 2,
- code: "ER45if",
- price: 540.99,
- departureDate: "2017/07/27",
- origin: "SFO",
- destination: "ORD",
- emptySeats: 54,
- plane: {
- "type": "Boeing 777",
- totalSeats: 300
- }
- }
- ]]]></ee:set-payload>
- </ee:message>
- </ee:transform>
- <flow-ref doc:name="getFlights" doc:id="542abc1a-c4af-4d69-b134-26f886bbe56b" name="getFlights"/>
- </flow>
- <flow name="get:\flights\(ID):american-flights-api-config">
- <ee:transform xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core">
- <ee:variables>
- <ee:set-variable variableName="ID">attributes.uriParams.'ID'</ee:set-variable>
- </ee:variables>
- </ee:transform>
- <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,
- code: "ER38sd",
- price: 400,
- departureDate: "2017/07/26",
- origin: "CLE",
- destination: "SFO",
- emptySeats: 0,
- plane: {
- "type": "Boeing 737",
- totalSeats: 150
- }
- }]]></ee:set-payload>
- </ee:message>
- </ee:transform>
- <flow-ref doc:name="getFlightsByID" doc:id="7271f929-4d66-4cd6-9884-6dbf4751fa14" name="getFlightsByID"/>
- </flow>
- <flow name="post:\flights:application\json:american-flights-api-config">
- <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
- ---
- {
- staticmessage: "Flight record added (well, not so much)"
- }]]></ee:set-payload>
- </ee:message>
- </ee:transform>
- <flow-ref doc:name="postFlights" doc:id="d5e775dd-880b-48a2-bc76-a9b11acac9ae" name="postFlights"/>
- </flow>
- </mule>
Advertisement
Add Comment
Please, Sign In to add comment