# HTTP API

出典：https://mimolive.com/ja/user-manual/remote-control-automation/http-api/  
最終更新日：2023-03-08  
セクション：リモートコントロールと自動化  

一方、mimoLive では [リモートコントロール UI](https://mimolive.com/user-manual/remote-control-surfaces) を提供しており、これを利用してカスタムユーザーインターフェースを作成し、タブレットなどのデバイスから mimoLive をリモートコントロールすることができます。

さらに、mimoLive では基本的な HTTP API へのアクセスも提供されており、**bash** や **curl**、 **AppleScript**、組み込みの[オートメーションレイヤー](https://mimolive.com/user-manual/automation)、あるいはHTTPサーバーと通信可能な類似の手段）を使用して、mimoLiveのさまざまな機能を制御するカスタムスクリプトを作成できます。その可能性はほぼ無限大です。 （[APIの使用例](https://mimolive.com/user-manual/examples-of-api-usage)をご参照ください）

このトピックでは、基本的なHTTP APIに焦点を当てます。このAPIは[json:api仕様](http://jsonapi.org/)に基づいていますので、mimoLive APIを使用する前に、必ずその内容をご確認ください。

\*ドキュメントに加え、GitHub上のPHPデモスクリプトもご参照ください。

また、ShellおよびAppleScript用のサンプルもご用意しています。

#### APIへのアクセス

mimoLive API には、mimoLive が実行されている同じマシン上（「localhost」経由）およびローカルネットワーク上（「.local」経由）からアクセスできます。

有効になっている場合、mimoLive は「ポート 8989」で HTTP サーバーを起動します。

すべてのAPI呼び出しには「/api/v1/」というパスが接頭辞として付きます。例えば、開いているドキュメントの一覧を取得したい場合は、「http://localhost:8989/api/v1/documents」を呼び出します。

すべての ID（ドキュメント、レイヤー、ソース、出力先など）はディスクに保存・永続化されるため、mimoLive 内で同じドキュメントが使用されている限り、これらの値をハードコーディングしても問題ありません。

提供されているすべてのエンドポイントの詳細については、[API エンドポイント](https://mimolive.com/user-manual/customization/http-api/endpoints/)をご参照ください。

#### 認証

mimoLive 3.1 以降、ユーザーが mimoLive の設定で認証を有効にしている場合、API へのリクエストごとにユーザーのパスワードを指定する必要があります。これには以下の 2 つの方法があります：

- カスタム HTTP ヘッダー「X-MimoLive-Password-SHA256: xxxxxxx」を設定する
- クエリパラメータ「?pwSHA256=xxxxxxx」を追加する

いずれの場合も、xxxxxxxの部分を、SHA-256を使用してハッシュ化され、16進数の文字列としてエンコードされた元のパスワード（UTF-8エンコーディング）に置き換える必要があります。
カスタムスクリプトやアプリケーションの開発を容易にするため、mimoLive では「リモートコントロール」設定パネルにこの API キーを表示し、クリップボードへのコピーを可能にしています：

![](https://mimolive.com/wp-content/uploads/2023/03/dddc6bf5-964b-493c-b35e-ee5b37e44e40.png)

##### 非推奨の認証方法

mimoLive バージョン 3.1 以前では、API へのリクエストは、すべてのリクエストにおいて特別な HTTP ヘッダー「X-MimoLive-Password: 」またはクエリパラメータ「?pw=」を使用して認証されていました。
残念ながら、この方法では、セキュリティが確保されていない可能性のあるネットワーク接続を介してパスワードが平文で送信されるため、HTTP API のパスワードが他の場所で再利用されている場合、機密データが漏洩する恐れがあります。
引き続き機能はしますが、この認証方法は推奨されておらず、将来的に廃止される可能性があります。

#### エラー

リクエスト中にエラーが発生した場合、mimoLiveはそのリクエストの処理を中止し、エラーを示すステータスコードを含むHTTPレスポンスを返します。また、このレスポンスには、発生した各エラーに関する追加情報を含むエラーオブジェクトのJSONペイロード配列も含まれます：

```
{
  “errors”: [
    {
 “status”: “404”,
 “title”: “Not Found”,
 “description”: “リクエストされたオブジェクトが見つかりませんでした”
    }
  ]
}
```

#### インターネット経由のリモートアクセス

HTTP APIはmimoLiveに組み込まれたWebサーバーによって提供されているため、mimoLiveが動作するコンピュータにパブリックIPアドレスを割り当てることで、インターネット上のどこからでもHTTP APIへのリモートアクセスを可能にすることができます。ただし、HTTP APIのセキュリティ対策は十分ではないため、これはお勧めできません。 パブリックネットワーク経由でHTTP APIへのリモートアクセスを有効にするより良い方法は、[ngrokを使用してmimoLiveホストコンピュータへのセキュアなトンネルを確立する](https://mimolive.com/user-manual/access-remote-control-surfaces-and-http-api-remotely)ことです。

## このセクションのページ

- [エンドポイント](https://mimolive.com/ja/user-manual/remote-control-automation/http-api/endpoints/.md)
- [データ型](https://mimolive.com/ja/user-manual/remote-control-automation/http-api/data-types/.md)
- [APIの使用例](https://mimolive.com/ja/user-manual/remote-control-automation/http-api/examples-of-api-usage/.md)