Anypoint MQ の REST API

Anypoint MQ API では、REST を使用してメッセージを送受信したり、キューやメッセージ交換を管理したり、結果を分析したりできます。

Anypoint MQ には次の API が用意されています。

Anypoint MQ のポータルは 開発者ポータルにあります。

API のワークフロー

Broker API での次の例は、API にアクセスするワークフローを示しています。

mq api workflow

手順:

  1. アプリケーションが Anypoint MQ に要求を送信し、メッセージのロックを保持する期間を設定します。

  2. Anypoint MQ がメッセージとロック ID を送信します。

  3. アプリケーションがメッセージに肯定応答して Anypoint MQ にメッセージの削除を要求するか、アプリケーションがメッセージに否定応答して Anypoint MQ にそのメッセージを他のアプリケーションで使用可能にするように要求します。アプリケーションがメッセージ ID とロック ID を Anypoint MQ に送信します。自動 ack または nack の設定についての詳細は、「肯定応答モード」ガイドを参照してください。

  4. 何のアクションも実行されずにロックの存続期間が切れると、メッセージは否定応答され、他のアプリケーションで使用できるようにキューに戻されます。

API アクセスの承認

API にアクセスするには、アクセストークンを取得する必要があります。

  • Anypoint MQ 管理 API - Anypoint Platform ユーザのアクセストークンを取得します。

  • Anypoint MQ ブローカー API - MQ アプリケーションのクライアント ID とクライアントシークレットを指定して、Anypoint MQ からトークンを取得します。

  • Anypoint MQ 統計 API - Anypoint Platform ユーザのアクセストークンを取得します。

それぞれの curl コマンドについては API セクションで説明します。

Anypoint MQ 管理 API

  • キューとメッセージ交換をブラウズする。

  • キューとメッセージ交換を作成する。

  • メッセージ交換用のバインドを管理する。

Anypoint MQ Admin API は、Anypoint MQ 管理機能へのアクセス権を提供します。

Anypoint Platform ユーザからアクセストークンを取得できます。アクセストークンは「ベアラー」とも呼ばれます。 アクセストークのデフォルトの存続期間 (TTL) は 60 分です。

組織 ID と環境 ID は、Anypoint Platform が MQ 内で監査可能なアクションに対して作成する payload.txt ファイルで取得できます。「MQ 監査ログ」を参照してください。

次の curl コマンドを使用して、アクセストークンを取得できます。

curl -X POST -H "Content-Type: application/json" -d '{"username":"USERNAME", "password":"PASSWORD"}' https://anypoint.mulesoft.com/accounts/login

このコマンドは、次のような出力を返します。

{
  "access_token": "42424242-4242-4242-4242-424242424242",
  "token_type": "bearer",
  "redirectUrl": "/home/"
}

管理 API - アプリケーション、キュー、メッセージ交換を作成および管理します。

Admin API ポータルで、[Download (ダウンロード)] をクリックして API を RAML、Mule 3 圧縮コネクタファイル、または Mule 4 コネクタ JAR ファイルとしてダウンロードします。

mq rest admin portal

Admin API ポータルでの FIFO キューの作成

"fifo": true 項目を含めることで、Admin API ポータルから FIFO キューを作成できます。

注意: 管理ポータルを使用する組織には、Anypoint MQ FIFO エンタイトルメントが必要です。Anypoint MQ が使用できるリージョンについては、「Anypoint MQ FAQ」を参照してください。

PUT 操作を使用する次のパスの場合

/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/regions/REGION_ID/destinations/queues/QUEUE_ID

次の body を使用します。

{
  "defaultTtl" : 120000,
  "defaultLockTtl" : 10000,
  "encrypted" : false,
  "fifo" : true
}

Anypoint MQ ブローカー API

この API を使用すると、キューとメッセージ交換からメッセージを送受信できます。

Anypoint MQ Broker API では、クライアントがキューと交換からメッセージを送受信できます。

組織 ID と環境 ID は、Anypoint Platform が MQ 内で監査可能なアクションに対して作成する payload.txt ファイルで取得できます。「MQ 監査ログ」を参照してください。

アクセス (ベアラー) トークンを取得するには、curl などのコマンドか Postman などのアプリケーションを使用する必要があります。次の例では curl を使用しています。 Windows ユーザの場合、この情報にアクセスする前に curl コマンドをダウンロードする必要があります。

このセクションのアクセストークンは、Broker API でのみ使用できます。Stats API や Admin API では、 このアクセストークンを使用しないでください。

Broker API アクセストークンを取得する手順は、次のとおりです。

  1. Anypoint Platform にログインします。

  2. [MQ][Client Apps (クライアントアプリケーション)] の順にクリックし、青い丸のプラスアイコンをクリックしてアプリケーションを作成します。

  3. クライアント ID とクライアントシークレットを取得し、下の curl コマンドでこれらの値を使用して CLIENT_IDCLIENT_SECRET を置き換えます。

    curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=client_credentials" "https://mq-us-east-1.anypoint.mulesoft.com/api/v1/authorize"

    Anypoint MQ および FIFO が使用できるリージョンについては、「Anypoint MQ FAQ」を参照してください。

  4. curl コマンドを送信します。

    このコマンドは、次のような出力を返します。

    {"access_token":"<token>","simple_client":{"envId":"ENVIRONMENT_ID","orgId":"ORGANIZATION_ID"},"token_type":"bearer"}

Broker API Portal - キューとメッセージ交換の間でパブリッシュ、コンシューム、ack、nack します。

Broker API ポータルで、[Download (ダウンロード)] をクリックして API を RAML、Mule 3 圧縮コネクタファイル、または Mule 4 コネクタ JAR ファイルとしてダウンロードします。

mq rest broker portal

Anypoint MQ 統計 API

ユースケース:

  • Anypoint MQ メトリクス:

    • キューのリアルタイム統計

    • キューの履歴統計

    • メッセージ交換の履歴統計

  • 使用量メトリクス - 請求目的で組織全体の Anypoint MQ の使用状況を表示する。

    • 環境ごとの使用量

    • 組織ごとの使用量

  • キューとメッセージ交換の統計をブラウズする

  • 現在キューで待機しているメッセージ数を表示する

詳細は、MuleSoft 開発者ポータルの​「Anypoint MQ 統計 API」を参照してください。

Anypoint MQ 統計 API の使用

注意: Anypoint MQ 統計 API にアクセスするには、最初に Anypoint アクセス管理 API を使用して認証する必要があります。

統計 API を使用するために、Anypoint Platform ユーザからアクセストークンを取得できます。 アクセストークンは「ベアラー」とも呼ばれます。 アクセストークのデフォルトの存続期間 (TTL) は 60 分です。 組織 ID と環境 ID は、Anypoint Platform が MQ 内で監査可能なアクションに対して作成する payload.txt ファイルで取得できます。「MQ 監査ログ」を参照してください。

次の curl コマンドを使用して、アクセストークンを取得できます。

curl -X POST -H "Content-Type: application/json" -d '{"username":"USERNAME", "password":"PASSWORD"}' https://anypoint.mulesoft.com/accounts/login

次のような出力が返されます。

{
  "access_token": "42424242-4242-4242-4242-424242424242",
  "token_type": "bearer",
  "redirectUrl": "/home/"
}

Anypoint MQ Stats API - キューのパフォーマンスの統計分析を実行します。

Stats API ポータルで、[Download (ダウンロード)] をクリックして API を RAML、Mule 3 圧縮コネクタファイル、または Mule 4 コネクタ JAR ファイルとしてダウンロードします。

mq rest stats portal

キューのリアルタイム統計

キューにあるメッセージの数およびインフライトメッセージの数の即時のスナップショットを取得できます (インフライトメッセージの内容については、「Anypoint MQ の用語」を参照)。このデータはほぼリアルタイムで更新されます。統計 API は複数のキューのリアルタイムを取得でき、カンマ区切りリストを返します。

/queues?destinationIds={queue1},{queue2}

要求と応答のサンプル:

https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/regions/REGION_URL
/queues?destinationIds=DESTINATION_ID

[
  {
      "destination": "95bgpyxYsVyFE",
      "messages": 0,
      "inflightMessages": 0
  }
]

キューの履歴統計

この API を使用してキューの履歴統計を取得できますが、履歴統計はリアルタイムでは更新されず、データがパブリッシュされるまでに約 5 ~ 10 分の遅延があります。履歴データの保持期間は 15 か月間です。また、データ量を抑えるために、履歴データは粒度を下げて保存されます。期間が 60 秒未満のデータポイントの保持期間は 3 時間、1 分のデータポイントは 15 日間、5 分のデータポイントは 63 日間、1 時間のデータポイントは 15 か月間です。

/queues/{queueId}?startDate=…​&endDate=…​&period=…​

要求と応答のサンプル:

https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/regions/REGION_URL
/queues/95bgpyxYsVyFE?startDate=Thursday, 8 Nov 2018 04:49:37 GMT
&endDate=Sun, 11 Nov 2018 04:60:44 GMT
&period=600

{
    "destination": "95bgpyxYsVyFE",
    "messages": [
        {
            "date": "2018-11-08T04:59:37.000+0000",
            "value": 0
        },
        {
            "date": "2018-11-08T05:09:37.000+0000",
            "value": 0
        }
    ]
}

期間は整数であり、秒単位のデータポイントの粒度です。

交換の履歴統計

保持ポリシーは前の​「​[キューの履歴統計​​]」​セクションと同じです。

/exchanges/{exchangeId}?startDate=…​&endDate=…​&period=…​

要求と応答のサンプル:

https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/regions/REGION_URL
/exchanges/exchange-test?
startDate=Wed%2C%2014%20Nov%202018%2021%3A53%3A08%20GMT
&endDate=Wed%2C%2014%20Nov%202018%2022%3A53%3A08%20GMT
&period=360

{
    "destination": "exchange-test",
    "messagesPublished": [
        {
            "date": "2018-11-14T21:59:08.000+0000",
            "value": 0
        }
     ]
}

この場合の期間は整数です。秒単位のデータポイントの粒度です。

環境別の使用量メトリクス

統計 API を使用して、特定の組織のすべての環境における Anypoint MQ の使用量を合計できます。これはリアルタイムではなく、遅延があります。

/environments/ENVIRONMENT_ID?startDate=…​&endDate=…​&period=…​

要求と応答のサンプル:

https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID
?startDate=Thursday, 8 Nov 2018 04:49:37 GMT
&endDate=Sun, 11 Nov 2018 04:60:44 GMT
&period=1day

[
    {
        "timestamp": "2018-11-08T00:00Z",
        "apiRequestCount": 0,
        "messageReceiptCount": 0,
        "billableUnitCount": 0,
        "messageByteCount": 0
    }
]

組織別の使用量メトリクス

統計 API を使用して、マスタビジネス組織における Anypoint MQ の使用量を合計できます。

/organizations/ORGANIZATION_ID?startDate=…​&endDate=…​&period=…​

要求と応答のサンプル:

https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID?
startDate=Thursday, 8 Nov 2018 04:49:37 GMT
&endDate=Sun, 11 Nov 2018 04:60:44 GMT
&period=1day

[
    {
        "timestamp": "2018-11-08T00:00Z",
        "apiRequestCount": 0,
        "messageReceiptCount": 0,
        "billableUnitCount": 0,
        "messageByteCount": 0
    }
]

例: Anypoint MQ 統計 API

注意: Anypoint MQ 統計 API にアクセスするには、最初に Anypoint アクセス管理 API を使用して認証する必要があります。

次の統計が提供されます。

  • messagesVisible - キューから取得できるメッセージ数。

  • messagesSent - キューに追加されたメッセージ数。

  • messagesReceived - キューで受信したメッセージ数。

  • messagesAcked - ACK されたメッセージ数。[Anypoint Platform] > [MQ] ユーザインターフェースを使用して削除されたメッセージも含まれます。

2018 年 7 月 26 日から 7 月 28 日までの統計をリストする要求の例:

curl -X GET \
'https://anypoint.mulesoft.com/mq/stats/api/v1/organizations/ORGANIZATION_ID/environments/ENVIRONMENT_ID/regions/REGION_URL/queues/randomQueue/?startDate=Thu%2C%2026%20Jul%202018%2000%3A00%3A00%20GMT&endDate=Sat%2C%2028%20Jul%202018%2020%3A00%3A00%20GMT&period=600' \
  -H 'authorization: Bearer BEARER_TOKEN' \
  -H 'cache-control: no-cache' \
  -H 'postman-token: ACCESS_TOKEN'

応答の例:

{
  "destination": "myDestination",
  "messages": [
    {
      "date": "2018-07-26T00:00:00.000+0000",
      "value": 2126
    },
    {
      "date": "2018-07-27T00:00:00.000+0000",
      "value": 2126
    },
    {
      "date": "2018-07-28T00:00:00.000+0000",
      "value": 587
    }
  ],
  "inflightMessages": [
    {
      "date": "2018-07-26T00:00:00.000+0000",
      "value": 0
    },
    {
      "date": "2018-07-27T00:00:00.000+0000",
      "value": 0
    },
    {
      "date": "2018-07-28T00:00:00.000+0000",
      "value": 0
    }
  ],
  "messagesVisible": [
    {
      "date": "2018-07-26T00:00:00.000+0000",
      "value": 2126
    },
    {
      "date": "2018-07-27T00:00:00.000+0000",
      "value": 2126
    },
    {
      "date": "2018-07-28T00:00:00.000+0000",
      "value": 587
    }
  ],
  "messagesSent": [
    {
      "date": "2018-07-26T00:00:00.000+0000",
      "value": 0
    },
    {
      "date": "2018-07-27T00:00:00.000+0000",
      "value": 0
    },
    {
      "date": "2018-07-28T00:00:00.000+0000",
      "value": 0
    }
  ],
  "messagesReceived": [
    {
      "date": "2018-07-26T00:00:00.000+0000",
      "value": 0
    },
    {
      "date": "2018-07-27T00:00:00.000+0000",
      "value": 0
    },
    {
      "date": "2018-07-28T00:00:00.000+0000",
      "value": 0
    }
  ],
  "messagesAcked": [
    {
      "date": "2018-07-26T00:00:00.000+0000",
      "value": 0
    },
    {
      "date": "2018-07-27T00:00:00.000+0000",
      "value": 0
    },
    {
      "date": "2018-07-28T00:00:00.000+0000",
      "value": 0
    }
  ]
}

例: Groovy - キューと交換の作成

プログラムでキューと交換を作成する場合、Groovy などの言語を使用できます。

次の例は、作成するキューと交換をリストする cloudhub.properties ファイル、 およびプロパティファイルを参照するスクリプトファイルで 構成されます。

日付

Anypoint MQ では、Stats API の開始日と終了日を標準 ISO 8601 形式で指定できます。

例: 2018-10-23T13:00:00Z

コマンドの起動

Anypoint Platform アカウントにアクセスする プロパティファイルを変更したら、このコマンドを使用して スクリプトファイルを起動します。

groovy <program_name>.groovy

プロパティファイルの設定

次のプロパティファイルの例は、アクセスログイン情報、 組織 ID、環境 ID、領域 ID、 および作成するキューと交換の名前を定義します。

username="<anypoint_platform_username>"
password="<anypoint_platform_password>"
organizationID="ORGANIZATION_ID"
environmentID {
    development="DEVELOPMENT_ENVIRONMENT_ID"
    qa="QA_ENVIRONMENT_ID"
    staging="STAGING_ENVIRONMENT_ID"
    production="PRODUCTION_ENVIRONMENT_ID"
}
regionID="REGION_URL"

queues=[
    "Queue1",
    "Queue2",
    "QueueN",
]

exchanges=[
    "Exchange1",
    "Exchange2",
    "ExchangeN"
]

Anypoint MQ と FIFO を使用可能なリージョンについては、「MQ FAQ」を参照してください。

スクリプトファイルの作成

次のスクリプトの例は、プロパティファイルにリストされるキューと交換を 作成します。

package guru.oso.mule

@Grab(group = 'org.apache.httpcomponents', module = 'httpclient', version = '4.5.3')

import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
import org.apache.http.client.methods.HttpGet
import org.apache.http.client.methods.HttpPost
import org.apache.http.client.methods.HttpPut
import org.apache.http.entity.StringEntity
import org.apache.http.impl.client.HttpClientBuilder

class AnypointMQAdminClient {

  static String HOST = "https://anypoint.mulesoft.com"

    static void main(String[] args) {

        def props

        if (args) {
            props = new ConfigSlurper().parse(new File(args[0]).toURI().toURL())
        } else {
            props = new ConfigSlurper().parse(new File("cloudhub.properties").toURI().toURL())
        }

        def ENVIRONMENT_ID = props.environmentID.production
        def token = authenticate(props.username, props.password)
        retrieveDestinations(props, token, ENVIRONMENT_ID)
    }

    static authenticate(String username, String password) {

      // build JSON
        def map = [:]
        map["username"] = username
        map["password"] = password
        def jsonBody = new JsonBuilder(map).toString()

        // build HTTP POST
        def url = HOST + '/accounts/login'
        def post = new HttpPost(url)

        post.addHeader("Content-Type", "application/json")
        post.setEntity(new StringEntity(jsonBody))

        // execute
        def client = HttpClientBuilder.create().build()
        def response = client.execute(post)

        // read and print response
        def bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))
        def jsonResponse = bufferedReader.getText()
        println "Response: \n" + jsonResponse

        // parse and return token
        def slurper = new JsonSlurper()
        def resultMap = slurper.parseText(jsonResponse)

        return resultMap["access_token"]
    }

    static retrieveDestinations(ConfigObject props, String token, String ENVIRONMENT_ID) {

        def ORGANIZATION_ID = props.organizationID
        def REGION_URL = props.regionID

        // build HTTP GET
        def getDestinationsURL = HOST + '/mq/admin/api/v1/organizations/' + ORGANIZATION_ID +
          '/environments/' + ENVIRONMENT_ID + '/regions/' + REGION_URL + '/destinations'
        def getDestinations = new HttpGet(getDestinationsURL)

        // set token
        getDestinations.setHeader("Authorization", "Bearer " + token)

        // execute
        def client = HttpClientBuilder.create().build()
        def response = client.execute(getDestinations)

        // parse and print results
        def bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))
        def jsonResponse = bufferedReader.getText()
        println "Response: \n" + jsonResponse
    }

    static retrieveQueue(ConfigObject props, String token, String ENVIRONMENT_ID, String QUEUE_ID) {

        def ORGANIZATION_ID = props.organizationID
        def REGION_URL = props.regionID

        // build HTTP GET
        def getQueueURL = HOST + '/mq/admin/api/v1/organizations/' + ORGANIZATION_ID + '/environments/' +
          ENVIRONMENT_ID + '/regions/' + REGION_URL + '/destinations/queues/' + QUEUE_ID
        def getQueue = new HttpGet(getQueueURL)

        // set token
        getQueue.addHeader("Authorization", "Bearer " + token)

        // execute
        def client = HttpClientBuilder.create().build()
        def response = client.execute(getQueue)

        // parse and print results
        def bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))
        def jsonResponse = bufferedReader.getText()
        println "Response: \n" + jsonResponse
    }

    static createQueues(ConfigObject props, String token, String ENVIRONMENT_ID) {

        def ORGANIZATION_ID = props.organizationID
        def REGION_URL = props.regionID
        def queues = props.queues

        queues.each { QUEUE_ID ->

            def putQueueURL = HOST + '/mq/admin/api/v1/organizations/' + ORGANIZATION_ID + '/environments/' +
              ENVIRONMENT_ID + '/regions/' + REGION_URL + '/destinations/queues/' + QUEUE_ID
            def putQueue = new HttpPut(putQueueURL)

            putQueue.addHeader("Content-Type", "application/json")
            putQueue.addHeader("Authorization", "Bearer " + token)

            def queueMap = [:]
            queueMap["defaultTtl"] = 604800000
            queueMap["defaultLockTtl"] = 120000
            queueMap["encrypted"] = false
            queueMap["fifo"] = false

            def putQueueJSONBody = new JsonBuilder(queueMap).toString()
            putQueue.setEntity(new StringEntity(putQueueJSONBody))

            def client = HttpClientBuilder.create().build()
            def response = client.execute(putQueue)

            def bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))
            def jsonResponse = bufferedReader.getText()
            println "Response: \n" + jsonResponse
        }
    }

    static createExchanges(ConfigObject props, String token, String ENVIRONMENT_ID) {

        def ORGANIZATION_ID = props.organizationID
        def REGION_URL = props.regionID

        def exchanges = props.exchanges

        exchanges.each { exchangeID ->

            def putExchangeURL = HOST + '/mq/admin/api/v1/organizations/' + ORGANIZATION_ID + '/environments/' + ENVIRONMENT_ID + '/regions/' + REGION_URL + '/destinations/exchanges/' + EXCHANGE_ID
            def putExchange = new HttpPut(putExchangeURL)

            putExchange.addHeader("Content-Type", "application/json")
            putExchange.addHeader("Authorization", "Bearer " + token)

            def exchangeMap = [:]
            exchangeMap["encrypted"] = false

            def putExchangeJSONBody = new JsonBuilder(exchangeMap).toString()
            putExchange.setEntity(new StringEntity(putExchangeJSONBody))

            def client = HttpClientBuilder.create().build()
            def response = client.execute(putExchange)

            def bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))
            def jsonResponse = bufferedReader.getText()
            println "Response: \n" + jsonResponse
        }
    }
}

例: Broker API でのメッセージのパブリッシュ

この例では、curl を使用してコマンドラインから Anypoint MQ をテストできます。 この例は、​MQ ブローカー API を使用してメッセージをパブリッシュおよびコンシュームします。プレースホルダ文字列 42544254-4254-4254-4254-425442544254 を認証およびトークン文字列の適切な値で置き換える必要があります。これらの例では、Postman を使用してキューにアクセスします。

次の curl コマンドはメッセージをパブリッシュします。

curl -X PUT -H "Content-Type: application/json" \
-H "Authorization: bearer 42544254-4254-4254-4254-425442544254" \
-H "Cache-Control: no-cache" \
-H "Postman-Token: 42544254-4254-4254-42544254-425442544254" \
-d '{ \
  "properties": {
    "userDefinedHeader": "User defined stuff",
    "anotherUserDefinedHeader": "Random stuff"
  },

  "body": "This is a message payload"
}
' "https://mq-us-east-1.anypoint.mulesoft.com/api/v1/organizations/42544254-4254-4254-4254-425442544254/environments/42544254-4254-4254-4254-425442544254/destinations/postmanExchange/messages/552"

次の curl コマンドはメッセージを取得します。

curl -X GET -H "Authorization: bearer 42544254-4254-4254-4254-425442544254" \
-H "Cache-Control: no-cache" \
-H "Postman-Token: 42544254-4254-4254-4254-425442544254" \
"https://mq-us-east-1.anypoint.mulesoft.com/api/v1/organizations/42544254-4254-4254-4254-425442544254/environments/42544254-4254-4254-4254-425442544254/destinations/postmanQueue/messages?pollingTime=10000&batchSize=1&lockTtl=10000"

Anypoint MQ と FIFO を使用可能なリージョンについては、「MQ FAQ」を参照してください。

例: Postman、Studio、ブラウザ

この例では、Postman、Anypoint Studio、ブラウザの組み合わせから Anypoint MQ をテストできます。

この例では、次の製品から Anypoint MQ API にアクセスできます。

Postman のセットアップ

Postman アプリケーションは、Anypoint MQ API にアクセスするプラットフォームを提供します。 Postman をダウンロードしてインストールしたら、次の情報を指定して環境を作成します。

  • ORGANIZATION_ID

  • ENVIRONMENT_ID

  • ベアラー (認証) トークン

  • ホスト ID (Anypoint Platform/MQ から)

  • クライアント ID (Anypoint Platform/MQ から)

  • クライアントシークレット (Anypoint Platform/MQ から)

  • キュー名 - Postman でこのキュー名を設定可能

Anypoint MQ API へのアクセスを許可したら、メッセージをパブリッシュしたり、メッセージをコンシュームしたり、返された body の情報からロック ID を取得したりします。

たとえば、次の情報がコンシューム (GET) コマンドから返されます。

{
    "properties": {
      "anotherUserDefinedHeader": "Random stuff",
      "userDefinedHeader": "User defined stuff"
    },
    "headers": {
      "messageId": "514",
      "lockId": "<lockIDvalue>",
      "created": "Tue, 23 Oct 2018 21:17:57 GMT",
      "deliveryCount": "2"
    },
    ...

ロック ID を取得したら、それを Postman 環境に追加してその後の要求を容易にできます。

API アクセス用の Studio のセットアップ

Anypoint Studio では、Anypoint MQ コネクタを使用する Mule アプリケーションを作成できます。 このセクションでは手順が要約されています。

次の要素で Studio プロジェクトをセットアップできます。

  • HTTP コネクタ:

    • ホスト: 0.0.0.0

    • ポート: 8081

    • パス: プロパティメニューで /mq/{messageId} に設定。

  • Anypoint MQ コネクタ: [Anypoint Platform] > [MQ] からクライアント ID とクライアントシークレットを取得し、[宛先] を Postman で作成されたキューに設定。

  • ロガー: [Message (メッセージ)] を値 #[payload] に設定。

Package Explorer ウィンドウでプロジェクト名を右クリックし、[Run As (別のユーザとして実行)] > [Mule Application (Mule アプリケーション)] をクリックします。

コンソールメッセージが値 DEPLOYED で終わっていることを確認します。

Postman に戻って新しいメッセージをパブリッシュします。

ブラウザアクセス

Studio で [HTTP Listener (HTTP リスナ)] をセットアップしたら、アドレス 0.0.0.0:8081 をブラウズします。ブラウザに、Postman によって送信されたメッセージが表示されます。このメッセージは Anypoint MQ コネクタが受信し、HTTP コネクタがブラウザに送信したメッセージです。

関連情報

Was this article helpful?

💙 Thanks for your feedback!