REST API 시작하기
OpenTester 자동화 API로 앱의 피드백을 읽고, 수정할 내용을 작업으로 기록하고, 완성한 GitHub PR을 연결할 수 있습니다. MCP도 같은 API를 사용합니다. 자체 도구나 CI에서 HTTP로 연결하려면 이 문서를 따르세요.
기본 주소
운영 환경에서는 서비스 운영자가 제공한 HTTPS API 주소를 사용합니다. 기본 경로는 /api/v1입니다. 아래 로컬 예시는 API 서버를 직접 호출합니다.
export OPENTESTER_API_URL="http://localhost:4000/api/v1"
export OPENTESTER_APP_ID="aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"OPENTESTER_APP_ID를 개발자 콘솔에서 확인한 앱 ID로 바꾸고, 해당 앱에서 발급한 토큰을 OPENTESTER_AGENT_TOKEN 환경변수에 비밀 값으로 주입하세요. 문서 사이트의 docs. 주소는 API 주소가 아닙니다.
먼저 준비할 것
앱 소유자 계정으로 개발자 콘솔의 앱 정보 및 SDK → 코딩 에이전트 연결에서 토큰을 발급하세요. 조회부터 PR 연결까지 사용하려면 feedback:read, work-items:read, work-items:write가 필요합니다. 인증과 권한을 참고하세요.
첫 번째 요청
curl --fail-with-body --get \
"$OPENTESTER_API_URL/apps/$OPENTESTER_APP_ID/automation/feedback" \
--header "Authorization: Bearer $OPENTESTER_AGENT_TOKEN" \
--header "Accept-Language: ko" \
--data-urlencode "status=open" \
--data-urlencode "limit=20"피드백이 없으면 정상 응답은 다음과 같습니다.
{
"feedback": [],
"total": 0,
"limit": 20,
"offset": 0
}엔드포인트
아래 경로는 모두 /api/v1/apps/:appId/automation을 기준으로 합니다.
| 메서드 | 경로 | 목적 | 에이전트 권한 |
|---|---|---|---|
GET | /feedback | 피드백 목록 | feedback:read |
GET | /feedback/:issueId | 피드백 상세 | feedback:read |
POST | /change-requests | 수정 작업 생성 | work-items:write |
GET | /change-requests | 수정 작업 목록 | work-items:read |
GET | /change-requests/:requestId | 수정 작업 상세 | work-items:read |
POST | /change-requests/:requestId/pull-request | GitHub PR 연결 | work-items:write |
GET | /tokens | 발급 토큰 목록 | 웹 세션 전용 |
POST | /tokens | 토큰 발급 | 웹 세션 전용 |
DELETE | /tokens/:tokenId | 토큰 철회 | 웹 세션 전용 |
API의 모든 동작은 경로의 앱에 한정됩니다. 같은 소유자가 관리하는 앱이라도 앱마다 토큰을 따로 발급합니다.
요청과 응답 규칙
- 본문은 JSON이며
Content-Type: application/json을 사용합니다. 본문 크기 제한은 64 KiB입니다. - ID는 UUID 문자열입니다. 날짜는 UTC ISO 8601 문자열입니다.
- 정의되지 않은 요청 필드와 쿼리 파라미터는
400오류입니다. - 성공한
GET은200,POST는201, 토큰 철회DELETE는200을 반환합니다. 같은 작업을 재시도한POST도201입니다. - 목록에는
total,limit,offset이 포함됩니다. 상세 응답은feedback또는changeRequest객체로 감쌉니다. - API 응답에는
Cache-Control: no-store가 설정됩니다.
페이지 나누기
피드백과 수정 작업 목록에 같은 규칙을 적용합니다.
| 파라미터 | 기본값 | 범위 |
|---|---|---|
limit | 20 | 정수 1–50 |
offset | 0 | 정수 0–100000 |
최신 생성 순서이며 생성 시각이 같으면 ID 내림차순입니다. 다음 페이지는 offset + limit으로 요청합니다. 조회 중 새 데이터가 생길 수 있으므로 전체 목록을 수집할 때는 ID로 중복을 제거하세요. 현재 커서 기반 페이지 나누기는 제공하지 않습니다.
언어와 오류
Accept-Language: ko를 보내면 지원하는 오류 메시지가 한국어로 반환됩니다. 응답의 Content-Language에서 선택된 언어를 확인할 수 있습니다. 클라이언트 분기는 번역되는 message 문자열 대신 HTTP 상태 코드를 기준으로 처리하세요. 오류와 재시도를 참고하세요.
연결 흐름
- 피드백 조회로 수정할 보고의 ID와 재현 정보를 확인합니다.
- 수정 작업 생성으로 목표·완료 기준·관련 피드백을 기록합니다.
- 사용하는 코딩 도구에서 수정과 테스트를 수행하고 GitHub PR을 만듭니다.
- 같은 수정 작업에 PR URL을 연결합니다.
수정 작업 생성은 코딩 에이전트를 실행하지 않습니다. PR 연결은 URL을 기록하며 병합·배포·피드백 상태 변경을 수행하지 않습니다. 앱에서 피드백을 제출하려면 Android SDK를 사용하세요.