# REST API 튜토리얼

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

REST API를 사용하여 Cloud Save의 데이터에 액세스할 수 있습니다.

REST API를 사용하면 유연성이 향상되며 원하는 언어와 게임 개발 엔진 또는 게임 서버를 사용해 워크플로를 자동화할 수 있습니다.

Cloud Save 서비스에서 제공되는 REST API는 다음과 같습니다.

* 플레이어 작업용 [Cloud Save 플레이어 API](https://services.docs.unity.com/cloud-save/)*(예: 데이터 저장/로딩)*
* 관리자 작업용 [Cloud Save 관리자 API](https://services.docs.unity.com/cloud-save-admin/)*(예: 쿼리/인덱스 구성)*

> **Note:**
>
> Cloud Save 서비스에서는 플레이어별로 분당 600개의 요청 비율 제한을 적용합니다.

### Authentication##authentication

[Multiplay Hosting 토큰](#authenticate-using-a-multiplay-hosting-token)이나 [상태 비보존 토큰](#authenticate-using-a-stateless-token)을 사용하여 Cloud Save REST API에 대한 요청을 인증할 수 있습니다. 받은 토큰을 요청 헤더에서 HTTP 인증을 위한 bearer 토큰으로 사용합니다.

> **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

상태 비보존 토큰을 사용하려면 서비스 계정을 생성하고 [토큰 교환 API](https://services.docs.unity.com/auth/v1/#tag/Authentication/operation/exchangeToStateless)를 호출하여 제한된 수명의 상태 비보존 토큰을 발급받아야 합니다.

### REST API 호출##calling-the-rest-api

코드베이스에 기본으로 제공되는 HTTP 라이브러리를 사용하여 모듈 엔드포인트를 호출할 수 있습니다. 검색된 인증 토큰을 요청 헤더에서 HTTP 인증을 위한 bearer 토큰으로 사용합니다.

플레이어의 데이터를 저장하기 위한 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'
```
