모의 오류가 포함된 파일에서 임의로 선택한 오류가 있는 요청에 실패합니다.
구성 예제
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "genericRandomErrorPlugin"
}
],
"urlsToWatch": [
"https://api.openai.com/*"
],
"genericRandomErrorPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.schema.json",
"errorsFile": "errors.json"
}
}
구성 속성
| 재산 | 묘사 | 기본값 |
|---|---|---|
errorsFile |
오류 응답이 포함된 파일의 경로입니다. | errors.json |
rate |
임의 오류로 실패할 요청의 비율입니다. 0에서 100 사이의 값입니다. | 50 |
retryAfterInSeconds |
요청을 다시 시도하기 전에 대기할 시간(초)입니다. 동적 제한에 대한 Retry-After 응답 헤더에 포함됩니다. |
5 |
명령줄 옵션
| 이름 | 묘사 | 기본값 |
|---|---|---|
-f, --failure-rate <failure rate> |
임의 오류로 실패할 요청의 비율입니다. 0에서 100 사이의 값입니다. | 50 |
비고
응답 메시지 본문
오류 응답의 속성을 JSON 개체 또는 배열로 설정 body 하면 Dev Proxy가 이를 JSON으로 직렬화합니다. 문자열로 설정하면 개발자 프록시는 따옴표 없이 문자열 as-is보냅니다. 시작하는 @ 문자열은 응답 본문을 사용하여 오류 파일을 기준으로 파일의 경로로 처리됩니다. 개발자 프록시는 헤더를 Content-Type 기본값으로 설정하므로 application/jsonJSON이 아닌 콘텐츠를 반환할 때 헤더를 콘텐츠와 일치하도록 설정합니다 Content-Type . 예를 들면 다음과 같습니다 text/plain.
응답 Retry-After 별 값
개발자 프록시는 @dynamic 헤더에서 Retry-After 상태 코드(예: 429또는 503529.)를 확인합니다. 대/소문자 구분 없이 헤더 이름과 일치합니다. 이 문제가 해결 @dynamic되면 RetryAfterPlugin에 요청을 등록합니다. 이 요청은 시간이 다 되기 전에 Retry-After 앱이 보내는 요청을 보고합니다.
기본적으로 헤더는 Retry-After 전역 retryAfterInSeconds 값을 사용합니다. 오류 응답 파일의 구문을 사용하여 @dynamic=N 응답별로 이 값을 재정의할 수 있습니다. 다시 N 시도하기 전에 대기할 시간(초)입니다.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.errorsfile.schema.json",
"errors": [
{
"request": {
"url": "https://api.openai.com/*"
},
"responses": [
{
"statusCode": 429,
"headers": [
{
"name": "Retry-After",
"value": "@dynamic=17"
}
],
"body": {
"error": {
"message": "Rate limit exceeded. Wait 17 seconds."
}
}
}
]
}
]
}
이 예제에서 헤더는 Retry-After 전역 17 설정에 관계없이 이 응답에 초를 사용합니다retryAfterInSeconds. 일반 토큰과 마찬가지로 후속 제한 요청마다 값이 @dynamic 증가합니다.
기본 Content-Type 헤더
오류 응답에 헤더가 body 있고 헤더를 Content-Type 정의하지 않는 경우 Dev Proxy는 헤더를 사용하여 Content-Type: application/json 응답을 반환합니다. 다른 콘텐츠 형식을 반환하려면 오류 파일의 Content-Type 응답에 헤더를 추가합니다. 개발자 프록시는 사용자가 지정한 값을 사용합니다.
다음 단계
Dev Proxy