# REST API のチュートリアル

> Access Cloud Save data from any development environment with the REST API.

Cloud Save 内のデータには REST API を使用してアクセスできます。

REST API はより柔軟性があり、開発者は好みの言語やゲーム開発エンジンを使用して、またはゲームサーバーから、ワークフローを自動化することができます。

Cloud Save サービスでは、以下の REST API が提供されます。

* [Cloud Save Player API](https://services.docs.unity.com/cloud-save/): プレイヤーのアクション用 *(データの保存/ロードなど)*
* [Cloud Save Admin API](https://services.docs.unity.com/cloud-save-admin/): 開発者のアクション用 *(クエリ/インデックスの設定など)*

> **Note:**
>
> Cloud Save サービスには、1 プレイヤーにつき 1 分あたり 600 リクエストのレート制限があります。

### 認証##authentication

[Multiplay Hosting トークン](#authenticate-using-a-multiplay-hosting-token) または [ステートレストークン](#authenticate-using-a-stateless-token) を使用して Cloud Save REST API のリクエストを認証できます。受信したトークンを Bearer トークンとしてリクエストヘッダーで HTTP 認証に使用します。

> **Note:**
>
> ゲームサーバーからの Multiplay トークンでの認証が推奨されます。ステートレストークンで認証するにはサービスアカウントを作成し、秘密鍵を安全に保存する必要がありますが、Multiplay トークンではこれが不要で、管理の複雑さが軽減されます。

#### Multiplay Hosting トークンを使用した認証##authenticate-using-a-multiplay-hosting-token

ゲームサーバーで以下のリクエストを実行することで、Multiplay Hosting トークンを取得できます。

```bash
curl -X GET http://localhost:8086/v4/token
```

リクエストでは以下の形式のレスポンスが返されます。

```json
{"token":"<BEARER_TOKEN>", "error":""}
```

#### ステートレストークンを使用した認証##authenticate-using-a-stateless-token

ステートレストークンを使用するには、サービスアカウントを作成し、[Token Exchange API](https://services.docs.unity.com/auth/v1/#tag/Authentication/operation/exchangeToStateless) を呼び出して、生存期間に制限があるステートレストークンを取得する必要があります。

### REST API の呼び出し##calling-the-rest-api

コードベースにネイティブの HTTP ライブラリを使用してモジュールエンドポイントを呼び出すことができます。取得した認証トークンを Bearer トークンとしてリクエストヘッダーで HTTP 認証に使用します。

プレイヤーにデータを保存する CURL リクエストの例は以下のようになります。

```bash
curl -X POST
  -H 'Authorization: Bearer <BEARER_TOKEN>' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"key":"someKey","value":"someValue"}' \
  'https://cloud-save.services.api.unity.com/v1/data/projects/<PROJECT_ID>/players/<PLAYER_ID>/items'
```
