HTTP API
원시 HTTP API를 사용하여 일정 구성을 관리할 수 있습니다. 일정 구성을 배포하면 특정 시점에, 혹은 반복해서 발생하는 이벤트를 발생시키는 일정이 생성됩니다.
API 사용
Scheduler 관리자 API 기술 자료에는 일정 생성, 읽기, 삭제 등의 관리자 작업이 자세히 설명되어 있습니다.
기술 자료는 인증, 엔드포인트, 요청 및 응답 형식에 대한 정보와 예시를 소개합니다. OpenAPI 포맷으로 기술 자료를 다운로드하여 직접 자동화를 설정하는 데 활용할 수 있습니다.
API를 사용하려면 서비스 계정을 사용하여 인증해야 합니다.
일정 배포
다음 요청을 전송하여 반복 일정 구성을 원격 환경에 배포할 수 있습니다.
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>' \
--data '{
"name": "Example Recurring",
"eventName": "example-event",
"type": "recurring",
"schedule": "* * * * *",
"payloadVersion": 1,
"payload": "{}"
}'
성공적인 응답에는 일정 ID가 포함됩니다. 예를 들면 다음과 같습니다.
{
"id": "f58a376c-2d4d-50a9-a231-61477fdaf5da"
}
이 ID를 사용하여 일정 구성을 검색하거나 삭제할 수 있습니다.
일정 구성을 배포하면, 지정된 시간에 자동으로 트리거되어 Triggers 서비스로 이벤트를 전송합니다.
일정 검색
다음 요청을 전송하여 배포한 일정을 검사할 수 있습니다.
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs/<CONFIG_ID>' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>'
응답의 예시는 다음과 같습니다.
{
"id": "string",
"name": "Example Recurring",
"eventName": "example-event",
"type": "recurring",
"schedule": "* * * * *",
"payloadVersion": 1,
"payload": "{}"
}
응답에는 다음 필드가 포함됩니다.
id
: 일정 구성 ID입니다.name
: 일정 구성 이름입니다.eventName
: 일정이 트리거될 때 발생시키는 이벤트의 이름입니다.type
: 일정 구성의 유형입니다.recurring
또는one-time
schedule
:type
필드에 따라 일정 구성은 크론 포맷이거나 RFC3339 타임스탬프입니다.payloadVersion
: 페이로드 버전입니다.payload
: Cloud Code 스크립트나 모듈로 파라미터를 전달하기 위한 이벤트 페이로드로 사용되는JSON
오브젝트입니다.
다음 요청을 전송하면 배포한 모든 일정을 미리 볼 수 있습니다.
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>'
응답의 예시는 다음과 같습니다.
{
"configs": [
{
"id": "a0fa56fd-9763-5590-9452-769be3e6c5bb",
"name": "Example One Time 2",
"eventName": "example-event",
"type": "one-time",
"schedule": "2024-01-14T07:20:50Z",
"payloadVersion": 1,
"payload": "{}"
},
{
"id": "f58a376c-2d4d-50a9-a231-61477fdaf5da",
"name": "Example Recurring",
"eventName": "example-event",
"type": "recurring",
"schedule": "* * * * *",
"payloadVersion": 1,
"payload": "{}"
},
{
"id": "fb3e6636-1a99-5a82-97b4-74b5f6678bb2",
"name": "Example One Time",
"eventName": "example-event",
"type": "one-time",
"schedule": "2024-01-12T07:20:50Z",
"payloadVersion": 1,
"payload": "{}"
}
],
"after": ""
}
쿼리 파라미터를 설정하여 페이지를 지정할 수도 있습니다. 예를 들어, 처음 두 개의 구성을 가져오려면 다음 요청을 전송하면 됩니다.
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs?limit=2' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>'
그러면 다음과 같은 응답을 받습니다.
{
"configs": [
{
"id": "f58a376c-2d4d-50a9-a231-61477fdaf5da",
"name": "Example Recurring",
"eventName": "example-event",
"type": "recurring",
"schedule": "* * * * *",
"payloadVersion": 1,
"payload": "{}"
},
{
"id": "a0fa56fd-9763-5590-9452-769be3e6c5bb",
"name": "Example One Time 2",
"eventName": "example-event",
"type": "one-time",
"schedule": "2024-01-14T07:20:50Z",
"payloadVersion": 1,
"payload": "{}"
}
],
"after": "<TOKEN>"
}
after
토큰을 사용하면 결과의 다음 페이지를 볼 수 있습니다. 예를 들면 다음과 같습니다.
curl 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs?limit=2&after=<TOKEN>' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>'
마지막 일정은 다음과 같이 반환됩니다.
{
"configs": [
{
"id": "fb3e6636-1a99-5a82-97b4-74b5f6678bb2",
"name": "Example One Time",
"eventName": "example-event",
"type": "one-time",
"schedule": "2024-01-12T07:20:50Z",
"payloadVersion": 1,
"payload": "{}"
}
],
"after": ""
}
일정 삭제
다음 요청을 전송하여 일정 구성을 삭제할 수 있습니다.
curl --request DELETE 'https://services.api.unity.com/scheduler/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/configs/<CONFIG_ID>' \
--header 'Authorization: Basic <KEY_ID>:<SECRET_KEY>'
빈 응답은 삭제에 성공했음을 나타냅니다.