Important
v3.3.1부터 모든 Dev Proxy API 요청에는 헤더가 Authorization: Bearer <token> 필요하며 유효한 토큰 반환 401 Unauthorized이 없는 요청입니다.
개발자 프록시는 프로그래밍 방식으로 프록시와 상호 작용할 수 있는 웹 API와 함께 제공됩니다. API는 프록시 설정에 지정된 IP 주소 및 포트에서 사용할 수 있습니다.
개발 프록시는 실행 중인 각 인스턴스에 대해 고유한 토큰을 생성하고 인스턴스를 시작한 사용자만 액세스할 수 있는 파일에 저장합니다. 또는 .를 사용하여 devproxy statusdevproxy api token토큰을 가져옵니다. 환경 변수가 CI 설정되면 개발자 프록시가 상태 및 시작 출력에서 토큰을 생략하기 때문에 사용합니다 devproxy api token .
생성된 토큰 대신 알려진 토큰을 사용하려면(예: 다른 도구가 개발 프록시를 시작하고 해당 API를 호출하는 경우) 개발자 프록시를 시작하거나 옵션을 사용하여 전달하기 전에 환경 변수를 --env 설정합니다DEV_PROXY_API_TOKEN. 값은 후행 = 안쪽 여백을 계산하지 않고 32자 이상이어야 하며 ASCII 문자, 숫자 및 문자-, ., _, ~+및 /선택적으로 뒤에 패딩만 = 포함할 수 있습니다. 개발 프록시는 공백을 둘러싼 트리밍합니다. 값이 유효하지 않으면 개발자 프록시가 시작되지 않고 오류로 종료됩니다. 개발자 프록시는 토큰을 계속 저장하므로 devproxy statusdevproxy api tokendevproxy stop 계속 작동합니다.
헤더에 토큰을 포함합니다.Authorization
Authorization: Bearer <token>
유효한 토큰 반환 401 Unauthorized이 없는 요청입니다. 브라우저 요청은 설정에 나열된 apiAllowedOrigins 원본에서도 제공해야 합니다. 다른 원본은 반환 403 Forbidden됩니다.
작업
다음 목록에서는 사용 가능한 API 작업을 보여 줍니다.
GET /proxy
현재 실행 중인 개발자 프록시 인스턴스 ProxyInfo 에 대한 정보가 포함된 인스턴스를 반환합니다.
예: 현재 실행 중인 개발자 프록시 인스턴스에 대한 정보 가져오기
요청:
GET http://localhost:8897/proxy
Authorization: Bearer <token>
응답:
200 OK
{
"recording": false,
"configFile": "/Users/user/dev-proxy/devproxyrc.json"
}
POST /proxy
현재 실행 중인 개발자 프록시 인스턴스를 제어합니다. 스크립트 또는 CI 파이프라인에서 기록을 시작하고 중지하려면 스크립트 및 CI의 레코드를 참조하세요.
예: 기록 시작
요청:
POST http://localhost:8897/proxy
Authorization: Bearer <token>
content-type: application/json
{
"recording": true
}
응답:
200 OK
{
"recording": true,
"configFile": "/Users/user/dev-proxy/devproxyrc.json"
}
예: 기록 중지
요청:
POST http://localhost:8897/proxy
Authorization: Bearer <token>
content-type: application/json
{
"recording": false
}
응답:
200 OK
{
"recording": false,
"configFile": "/Users/user/dev-proxy/devproxyrc.json"
}
기록 중지 및 보고서 생성
기록 중지는 요청 캡처를 중지하는 것 이상입니다. 개발자 프록시가 녹음/녹화하는 동안 보내는 {"recording": false} 경우 개발자 프록시는 녹음된 요청을 구성 파일에 나열된 순서대로 모든 사용 가능한 플러그 인에 전달합니다. 이는 개발자 프록시가 실행 중인 콘솔에서 s 키를 누르는 것과 같습니다. 이 단계에서는 다음을 수행합니다.
- 보고 플러그 인 은 기록된 요청을 분석하고 보고서를 생성합니다.
-
기자는 보고서를 파일로 변환합니다. 각 기자는 각 보고서에 대해 하나의 파일(예:
/a0>) 을 씁니다. <plugin>는 보고서를 생성한 플러그 인 인스턴스의 이름이며<reporter>, 보고자 인스턴스의 이름입니다. 해당 이름의 파일이 이미 있는 경우 기자는 타임스탬프를 추가합니다(예:ExecutionSummaryPlugin_MarkdownReporter_20261105114500.md). - 생성기 플러그 인(
OpenApiSpecGeneratorPlugin예: 생성기 플러그 인)은 생성한 파일을 작성합니다.
개발자 프록시는 개발자 프록시를 시작한 디렉터리인 현재 작업 디렉터리에 이러한 파일을 씁니다.
API는 모든 플러그 인이 기록된 요청 처리를 완료한 후에 응답합니다. 사용하는 플러그 인(예: 언어 모델을 호출하는 플러그 인)에 따라 이 단계는 시간이 걸릴 수 있으므로 HTTP 클라이언트가 너무 일찍 시간 초과되지 않도록 해야 합니다. 응답이 도착하면 보고서 파일이 디스크에 기록됩니다.
또한 개발자 프록시는 기록된 요청을 처리하는 진행률을 기록합니다.
| 로그 메시지 | Meaning |
|---|---|
DONE |
모든 플러그 인이 기록된 요청 처리를 완료했습니다. |
No requests to process |
플러그 인에서 분석할 기록된 요청을 찾지 못했습니다. |
An error occurred in a plugin |
플러그 인이 실패했습니다. 개발자 프록시는 모든 플러그 인이 완료되면 다음 플러그 인 및 로그를 계속 사용합니다 DONE . |
보낼 {"recording": false}때 개발자 프록시가 기록되지 않는 경우 개발자 프록시는 요청을 처리하지 않고, 파일을 작성하지 않으며, 로깅 DONE하지 않습니다.
Tip
녹음하는 동안 개발자 프록시를 사용하여 POST /proxy/stopproxy 중지하는 경우 Dev Proxy는 녹음된 요청을 종료하기 전에 처리합니다. 그러나 API는 즉시 응답하므로 보고서가 준비되었다는 것을 알기 위해 개발 프록시 프로세스가 종료되기를 기다려야 합니다. 보고서가 준비되는 시기를 정확하게 확인하려면 먼저 기록을 중지하고 응답을 기다린 다음 개발 프록시를 중지합니다.
개발자 프록시를 시작하고, API를 통해 기록을 제어하고, 개발 프록시가 완료되기를 기다리는 전체 스크립트는 CI/CD 시나리오에서 개발 프록시 사용을 참조하세요.
POST /proxy/jwtToken
JWT(JSON 웹 토큰)를 생성합니다.
요청:
POST http://localhost:8897/proxy/jwtToken
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "Dev Proxy",
"audiences": [
"https://myserver.com"
],
"issuer": "dev-proxy",
"roles": [
"admin"
],
"scopes": [
"Post.Read",
"Post.Write"
],
"claims": {
"claim1": "value",
"claim2": "value"
},
"validFor": 60
}
참고 항목
등록된 클레임(예: iss, , sub, audexp, nbf, iat) jti이 토큰에 자동으로 추가됩니다. 요청에서 이러한 클레임을 지정하는 경우 API는 사용자가 제공하는 값을 무시합니다.
응답:
200 OK
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IkRldiBQcm94eSIsInN1YiI6IkRldiBQcm94eSIsImp0aSI6IjkyZjM5YzciLCJzY3AiOlsiUG9zdC5SZWFkIiwiUG9zdC5Xcml0ZSJdLCJyb2xlcyI6ImFkbWluIiwiY2xhaW0xIjoidmFsdWUiLCJjbGFpbTIiOiJ2YWx1ZSIsImF1ZCI6Imh0dHBzOi8vbXlzZXJ2ZXIuY29tIiwibmJmIjoxNzI3MTk4MjgyLCJleHAiOjE3MjcyMDE4ODIsImlhdCI6MTcyNzE5ODI4MiwiaXNzIjoiZGV2LXByb3h5In0.E_Gj9E58OrAh9uHgc-TW8DYfq8YHFrhaUTpKA4yXEIg"
}
GET /proxy/logs
개발자 프록시 로그 출력을 반환합니다.
logs 명령에 해당합니다. 이 엔드포인트는 개발자 프록시가 분리 모드에서 실행되는 경우에만 사용할 수 있습니다. 그렇지 않으면 API가 반환됩니다 404 Not Found.
| 쿼리 매개 변수 | 설명 | Default |
|---|---|---|
lines |
로그 끝에서 반환할 줄 수 | 50 |
follow |
새 로그 줄을 서버에서 보낸 이벤트로 스트림하는 경우 true |
false |
since |
지정된 날짜 및 시간 이후 로깅된 줄만 반환합니다. 기간(예: 30s, , 5m, 1d1h) 또는 ISO 8601 날짜 및 시간(예: 2026-01-24T14:00:00 또는2026-01-24T14:00:00Z)을 사용합니다. 타임스탬프에 표준 시간대 오프셋이 포함되지 않은 경우 개발자 프록시는 현지 표준 시간대를 사용합니다. |
n/a |
이 매개 변수는 since 로그 줄을 반환할 때와 스트리밍할 때 전체 날짜 및 시간별로 로그 줄을 필터링합니다. 개발자 프록시는 각 요청이 시작된 시간까지 필터링하므로 지정된 시간 이전에 시작된 요청은 나중에 완료된 경우에도 반환되지 않습니다.
기본적으로 API는 로그 줄을 일반 텍스트로 반환합니다. 로그 항목의 JSON 배열을 가져오려면 헤더application/json를 Accept .로 설정합니다. 로그 줄을 서버에서 보낸 이벤트로 스트리밍하려면 헤더를 text/event-streamAccept로 설정 followtrue하거나 설정합니다.
요청:
GET http://localhost:8897/proxy/logs?lines=10
Authorization: Bearer <token>
응답:
200 OK
content-type: text/plain
[last 10 lines of the Dev Proxy log]
POST /proxy/mockrequest
모의 요청을 발생합니다. 개발자 프록시가 실행 중인 콘솔에서 w를 누르는 것과 같습니다. 모의 요청이 완료된 후 API가 응답합니다.
요청:
POST http://localhost:8897/proxy/mockrequest
Authorization: Bearer <token>
응답:
204 No Content
GET /proxy/rootCertificate?format=crt
개발자 프록시가 HTTPS 요청의 암호를 해독하는 데 사용하는 PEM(개인 정보 보호 강화 메일) 형식으로 루트 인증서의 공개 키를 다운로드합니다. 이 API는 Docker 컨테이너에서 개발자 프록시를 실행하는 동안 호스트에서 루트 인증서를 신뢰하려는 경우에 유용합니다.
현재 지원되는 유일한 형식은 .입니다 crt. 다른 형식을 지정하거나 형식을 전혀 지정하지 않으면 API는 400 잘못된 요청 오류를 반환합니다.
요청:
GET http://localhost:8897/proxy/rootCertificate?format=crt
Authorization: Bearer <token>
응답:
content-type: application/x-x509-ca-cert
-----BEGIN CERTIFICATE-----
[base64 encoded certificate]
-----END CERTIFICATE-----
POST /proxy/stopproxy
개발자 프록시를 정상적으로 종료합니다. 개발자 프록시가 기록 중인 경우 녹음/녹화를 중지하고 종료하기 전에 보고서를 생성 합니다. API는 개발자 프록시 종료가 완료되기 전에 즉시 응답합니다.
요청:
POST http://localhost:8897/proxy/stopproxy
Authorization: Bearer <token>
응답:
202 Accepted
개발 프록시는 종료를 시작하는 즉시 반환 202 Accepted 됩니다. 응답이 개발자 프록시가 종료되었음을 의미하지는 않습니다. 종료하는 동안 개발자 프록시:
- 새 프록시 요청 수락을 중지합니다. 개발자 프록시가 시스템 프록시로 등록된 경우 이전 시스템 프록시 설정을 복원합니다. 개발자 프록시는 열려 있는 연결이 닫히기까지 최대 5초 동안 기다린 다음 나머지 연결을 닫습니다.
- 녹화가 켜진 경우 기록을 중지하고 기록된 요청에서 보고 플러그 인을 실행합니다( 직접 녹음을 중지할 때와 동일). 플러그 인이 완료되면 개발자 프록시는 보고서와 로그를 씁니다
DONE. - 인스턴스 정보를 제거하므로
devproxy statusdevproxy stop더 이상 나열하지 않습니다. - 종료 코드
0로 종료합니다.
Dev Proxy는 종료할 때 신뢰할 수 있는 인증서 저장소에서 루트 인증서를 제거하지 않습니다. 인증서를 제거하려면 인증서 제거를 사용합니다.
일반적으로 종료에는 몇 초 정도 걸립니다. 플러그 인이 큰 기록을 처리하는 경우 더 오래 걸릴 수 있습니다. 종료가 시작되면 API에 더 이상 연결할 수 없으므로 API를 폴링하여 개발 프록시가 종료되었는지 확인하지 마세요. 대신 다음 옵션 중 하나를 사용합니다.
- 인쇄되는 PID(프로세스 ID)가
devproxy --detach종료될 때까지 기다립니다. - 종료 코드를
1반환할 때까지 실행devproxy status --pid <pid>합니다. 즉, 인스턴스가 더 이상 실행되지 않습니다. 자세한 내용은 상태를 참조하세요. - 기록 중인 경우 보고 플러그 인이 완료된 후 개발자 프록시 로그에 기록되는 메시지에 대한
DONE개발자 프록시 로그를 확인합니다. 예제는 CI/CD 시나리오에서 개발 프록시 사용을 참조하세요.
예를 들어 분리된 개발자 프록시 인스턴스가 Linux 또는 macOS에서 종료되기를 기다립니다.
# DEVPROXY_PID is the PID that devproxy --detach printed
# TOKEN is the API token from devproxy api token
curl -X POST http://localhost:8897/proxy/stopproxy -H "Authorization: Bearer $TOKEN"
while ./devproxy/devproxy status --pid $DEVPROXY_PID > /dev/null 2>&1; do
sleep 1
done
예를 들어 .를 사용하여 kill -9개발 프록시 프로세스를 강제로 종료하지 않도록 합니다. 이러한 방식으로 프로세스를 종료하면 개발자 프록시는 기록 또는 복원 시스템 프록시 설정을 플러시하지 않습니다. 명령줄에서 Dev Proxy를 중지하려면 중지를 사용합니다. 이 API는 이 API를 호출하고 개발자 프록시가 종료되기까지 최대 10초 동안 기다립니다.
모델
ProxyInfo
현재 실행 중인 개발자 프록시 인스턴스에 대한 정보입니다.
| 속성 | Type | 설명 |
|---|---|---|
recording |
boolean |
프록시가 현재 요청을 기록하고 있는지 여부 |
configFile |
string |
개발자 프록시에서 사용 중인 구성 파일의 경로(읽기 전용) |
JwtOptions
JWT 토큰을 생성하는 옵션입니다.
| 속성 | Type | 설명 |
|---|---|---|
name |
string |
토큰을 만들 사용자의 이름입니다. |
audiences |
string[] |
토큰을 만들 대상 그룹 |
issuer |
string |
토큰 발급자 |
roles |
string[] |
토큰에 추가할 역할 클레임 |
scopes |
string[] |
토큰에 추가할 범위 클레임 |
claims |
KeyValuePair |
토큰에 추가할 클레임 |
validFor |
number |
토큰이 유효한 기간(분)입니다. |
signingKey |
string |
토큰에 서명하는 데 사용할 키입니다. 32자 이상이어야 합니다. 지정하지 않으면 임의로 생성된 키를 사용합니다. |
JwtInfo
JWT 토큰에 대한 정보입니다.
| 속성 | Type | 설명 |
|---|---|---|
token |
string |
JWT 토큰 |
또한, 다음을 참조하세요.
Dev Proxy