# メッセージパブリッシュAPI

本APIドキュメントでは、単一メッセージのパブリッシュおよび一括メッセージパブリッシュに関する操作を提供します。

## メッセージのパブリッシュ

### URI

POST /publish

### リクエストメッセージ

| 名前               | 型       | 説明                                                         |
| ------------------ | -------- | ------------------------------------------------------------ |
| topic              | String   | メッセージをパブリッシュするトピック。                       |
| payload            | String   | メッセージ本文。                                             |
| payload_encoding   | String   | メッセージ本文のエンコーディング方式。現在は `plain` と `base64` のみ対応し、デフォルトは `plain` です。 |
| qos                | Integer  | QoS（サービス品質）レベル。デフォルトは0です。               |
| retain             | Boolean  | メッセージをリテインするかどうか。デフォルトは `false` です。 |

### レスポンスメッセージ

| 名前 | 型     | 説明         |
| :--- | :----- | :------------ |
| id   | String | 識別子       |

### リクエスト例

```bash
curl -u app_id:app_secret -X POST -H 'Content-Type: application/json' -d '{"topic": "t/a","qos": 1,"payload": "Hello EMQX"}' {api}/publish
```

### レスポンス例

```json
// HTTPステータスコード
200
// HTTPレスポンスボディ
{
  "id": "000600D09A099053F445000014C30000"
}
```

```json
// HTTPステータスコード
202
// HTTPレスポンスボディ
{
  "message": "no_matching_subscribers",
  "reason_code": 16
}
```

## 一括メッセージパブリッシュ

### URI

POST /publish/bulk

### リクエストメッセージ

| 名前                 | 型       | 説明                                                         |
| -------------------- | -------- | ------------------------------------------------------------ |
| [].topic             | String   | メッセージをパブリッシュするトピック。                       |
| [].payload           | String   | メッセージ本文。                                             |
| [].payload_encoding  | String   | メッセージ本文のエンコーディング方式。現在は `plain` と `base64` のみ対応し、デフォルトは `plain` です。 |
| [].qos               | Integer  | QoS（サービス品質）レベル。デフォルトは0です。               |
| [].retain            | Boolean  | メッセージをリテインするかどうか。デフォルトは `false` です。 |

### レスポンスメッセージ

| 名前 | 型     | 説明         |
| :--- | :----- | :------------ |
| id   | String | 識別子       |

### リクエスト例

```bash
curl -u app_id:app_secret -X POST -H 'Content-Type: application/json' -d '[{"topic": "t/a","qos": 0,"payload": "Hello EMQX"},{"topic": "t/b","qos": 1,"payload": "Hi EMQX"}]' {api}/publish/bulk
```

### レスポンス例

```json
// HTTPステータスコード
200
// HTTPレスポンスボディ
[
    {
        "id": "00060563A10558877ACA0C006CFA0000"
    },
    {
        "id": "00060563A10558BF7ACA0C006CFA0001"
    }
]
```

```json
// HTTPステータスコード
202
// HTTPレスポンスボディ
{
  "message": "no_matching_subscribers",
  "reason_code": 16
}
```
