Flex Gateway新着情報
Governance新着情報
Monitoring API Manager次の例では、Anypoint Studio または Mule Runtime Engine のスタンドアロン XML を使用して、公開されている REST API からデータを取得する API を記述する方法を説明しています。この API の例では、lorem ipsum テキストを生成し、次の場所にある Bacon Ipsum REST API を照会します。
http://baconipsum.com/
Studio で REST API をコンシュームするには、HTTP Connector を設定し、File Write 操作を追加して、アプリケーションを実行します。
最初に、Studio で HTTP リスナーと HTTP Request Connector を追加して設定します。HTTPS を使用したりアカウントをセットアップしたりする必要はありません。
この時点で、API をコールして Web ブラウザーで bacon ipsum
テキストを受信できます。
次に、File Write コンポーネントを追加して bacon ipsum
テキストの要求の出力をファイルシステムのファイルに保存します。
最初の要素である HTTP Listener は、ローカルホストポート 8081 (デフォルト) 上で受信 GET 要求をリスンします。ブラウザーからリスナーをコールすると、フローがトリガーされます。
最後に、次の構文を使用して要求を送信します。
http://localhost:8081?<query>
<query>
は REST API によって受け入れられるパラメーターで構成されます。HTTP Listener が HTTP Request を受信すると、アプリケーションによって <query>
が一連のクエリパラメーターとして記録されます。HTTP Listener によってこれらのパラメーターがフローの次の要素である HTTP Request 操作に渡されます。この操作は、http://baconipsum.com/api
でリモート REST API を照会するように設定されています。HTTP Request Connector では DataWeave 式を使用してメッセージのプロパティからクエリパラメーターを抽出し、クエリパラメーターを含めてリモート API の完全な URL を作成します。
たとえば、次のローカルブラウザー要求を入力するとします。
http://localhost:8081?type=meat-and-filler
結果として、アプリケーションで次のクエリが発行されます。
http://baconipsum.com/api/?type=meat-and-filler
HTTP リスナーと HTTP Request Connector を設定して、API をコールする方法と返す内容を指定します。
HTTP リスナーを設定するには、次の手順に従います。
HTTP Listener コンポーネントを選択します。
[Connector Configuration (コネクタ設定)] で をクリックし、[Host (ホスト)] を localhost
、[Port (ポート)] を 8081
に設定します。
[OK] をクリックします。
HTTP リスナーのプロパティエディターで、[Path (パス)] を /
に設定します。
[Connector Configuration (コネクタ設定)] で をクリックし、[Host (ホスト)] を baconipsum.com
、[Port (ポート)] を 80
、[Base Path (ベースパス)] を api
に設定します。この設定により、要求は http://baconipsum.com/api
に送信されます。
[OK] をクリックします。
プロパティエディターで、[Path (パス)] を /
に、[Method (メソッド)] を GET
に設定します。
[Query Parameters (クエリパラメーター)] タブで、2 つのクエリパラメーターを追加します。
各 value
項目に、最初に HTTP リスナーに到達した要求のクエリパラメーターから指定された値を取得する Mule 式を入力します。
パラメーター | 値 |
---|---|
Type (型) |
|
Name (名前) |
|
Value (値) |
|
パラメーター | 値 |
---|---|
Type (型) |
|
Name (名前) |
|
Value (値) |
`#[message.attributes.queryParams['sentences']] |
Bacon Ipsum API ページには使用できるパラメーターのリストが記載されていますが、このアプリケーションでは type
と sentences
パラメーターのみを使用します。省略可能な sentences
パラメーターによって、JSON 応答で返す文の数が決定されます。
アプリケーションの出力をファイルに保存するように File Write コンポーネントのプロパティをセットアップします。
File Write コンポーネントをキャンバスにドラッグします。
プロパティエディターで、出力を保存するためのディレクトリとファイル名を設定します: /tmp/output
。
プロパティエディターで、[Path (パス)] のファイルシステムの実際のパスを指定します。
以下の手順でアプリケーションを実行します。
Studio のプロジェクト内で をクリックして Mule アプリケーションとして例を実行します。テスト
Web ブラウザーウィンドウでローカルホストポート 8081 で HTTP Listener を照会して、アプリケーションのフローをトリガーします。
http://localhost:8081?type=meat-and-filler
Bacon Ipsum API ページには使用できるパラメーターのリストが記載されていますが、HTTP Request Connector を設定するときは、type
と sentences
パラメーターのみを使用するようにコネクタをセットアップします。
最初のパラメーター=値のペアの前に ?
演算子を追加する必要があります。
追加のパラメーター=値のペアを挿入するには、&
演算子を使用します。
次のクエリは、ローカルホストポート 8081 で HTTP リスナーに送信できる例です。
http://localhost:8081?type=meat-and-filler http://localhost:8081?sentences=2 http://localhost:8081?type=all-meat&sentences=3
type=meat-and-filler
の例では、次の出力が返されます。
["Doner ullamco ea non, porchetta incididunt brisket ball tip in chuck ex bresaola beef tongue. Et aute ham hock kielbasa chuck fatback short ribs. Kevin in reprehenderit est esse, ham bacon ut ball tip. Laborum ut nulla ex irure t-bone flank, biltong cupidatat venison proident aliquip pork belly ham hock. In consequat proident, cillum labore pariatur nisi. Reprehenderit boudin beef ribs, frankfurter cillum enim pork loin consectetur kielbasa laboris. Hamburger prosciutto nisi, jerky biltong ex pork chop venison.","Fatback tongue anim, irure ut ut cupidatat occaecat eiusmod ham hock laborum commodo. Anim pig shank kielbasa, drumstick corned beef esse nostrud ham salami id laborum ribeye aute. Duis pancetta sunt magna occaecat dolor leberkas, short loin meatloaf flank enim pastrami. Prosciutto proident landjaeger deserunt tenderloin short loin. Adipisicing aute in bresaola meatball, ut frankfurter pastrami shoulder porchetta turducken strip steak doner. In filet mignon bresaola, sed deserunt pariatur eu mollit commodo shankle laborum. Andouille aliqua jowl pork chop jerky sed consequat turkey voluptate bacon pastrami.","Ground round elit boudin reprehenderit. Brisket shankle esse, leberkas veniam andouille rump proident drumstick. Consequat sausage do ut prosciutto nostrud andouille tongue ullamco bacon est exercitation. Do fugiat biltong est tempor short ribs reprehenderit adipisicing shoulder. Tail venison shank incididunt, hamburger adipisicing voluptate corned beef fugiat sirloin fatback in tri-tip nisi ut. Tail non excepteur, fugiat veniam corned beef dolore ex pig pork belly sint mollit chuck pork.","Pig hamburger dolore proident brisket landjaeger in boudin kielbasa ut elit. Velit incididunt boudin qui. Fatback anim adipisicing, pig jowl voluptate sirloin drumstick chicken esse. Strip steak consequat tenderloin pastrami, ullamco brisket hamburger bacon beef adipisicing. Tri-tip ham hock eu non et, flank dolore kevin. Et duis frankfurter, ut ullamco do non quis boudin andouille aliqua venison ham. Ut aliqua shoulder, aliquip pariatur bacon spare ribs irure.","Aliqua jerky frankfurter, swine ham in ground round sed qui laborum cow. Sint turducken shank ut ea id. Kevin dolore pig excepteur, anim ut magna. Enim consequat short ribs corned beef ham hock nostrud fugiat chuck. Tail spare ribs dolore boudin, andouille incididunt laboris occaecat strip steak. Cow frankfurter capicola, landjaeger cupidatat porchetta ad ground round voluptate."]
スタンドアロン XML で REST API をコンシュームするには、HTTP リスナーと HTTP Request Connector を設定すると共に File Write コンポーネントを追加する必要があります。
HTTP リスナーと HTTP Request Connector を設定して、API をコールする方法と返す内容を指定します。
HTTP リスナーを設定するには、[Connector Configuration (コネクタ設定)] と呼ばれる抽象的な要素を参照してください。ここには、概要レベルの必須設定プロパティがいくつか含まれます。
<http:listener config-ref="HTTP_Listener_config" path="/"/>
コネクタの config-ref
属性は、このコネクタ設定要素を参照します。今度は、参照される名前に一致する要素をフローの外側で作成する必要があります。
<http:listener-config name="HTTP_Listener_config">
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
HTTP 要求を設定するには、[Connector Configuration (コネクタ設定)] と呼ばれる抽象的な要素を参照する必要があります。ここには、概要レベルの必須設定プロパティがいくつか含まれます。
<http:request method="GET" config-ref="HTTP_Request_configuration" path="/">
<http:query-params >
<![CDATA[#[output application/java
---
{
"type" : message.attributes.queryParams['type'],
"sentences" : message.attributes.queryParams['sentences']
}
]]]>
</http:query-params>
</http:request>
コネクタの config-ref
属性は、このコネクタ設定要素を参照します。今度は、参照される名前に一致する要素をフローの外側で作成する必要があります。
<http:request-config name="HTTP_Request_configuration" basePath="/api">
<http:request-connection host="baconipsum.com" port="80"/>
</http:request-config>
完成した XML を確認します。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:file="http://www.mulesoft.org/schema/mule/file"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns="http://www.mulesoft.org/schema/mule/core" 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/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.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/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
<http:request-config name="HTTP_Request_configuration" basePath="/api">
<http:request-connection host="baconipsum.com" port="80"/>
</http:request-config>
<http:listener-config name="HTTP_Listener_config">
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="consumeRestAPI">
<http:listener config-ref="HTTP_Listener_config" path="/"/>
<http:request method="GET" config-ref="HTTP_Request_configuration" path="/">
<http:query-params ><![CDATA[#[output application/java
---
{
"type" : message.attributes.queryParams['type'],
"sentences" : message.attributes.queryParams['sentences']
}]]]>
</http:query-params>
</http:request>
<file:write path="/Users/max/output.txt"/>
</flow>
</mule>