Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Falha em solicitações com um erro selecionado aleatoriamente do arquivo que contém erros simulados.
Exemplo de configuração
{
"$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"
}
}
Propriedades de configuração
| Propriedade | Descrição | Inadimplência |
|---|---|---|
errorsFile |
Caminho para o arquivo que contém respostas de erro. | errors.json |
rate |
A porcentagem de solicitações a falhar com um erro aleatório. Valor entre 0 e 100. | 50 |
retryAfterInSeconds |
O número de segundos de espera antes de tentar novamente a solicitação. Incluído no cabeçalho de resposta Retry-After para limitação dinâmica. |
5 |
Opções de linha de comando
| Nome | Descrição | Inadimplência |
|---|---|---|
-f, --failure-rate <failure rate> |
A porcentagem de solicitações a falhar com um erro aleatório. Valor entre 0 e 100. | 50 |
Observações
Corpo da resposta
Se definires a body propriedade de resposta de erro a um objeto ou array JSON, o Dev Proxy serializa-a para JSON. Se a definires como uma cadeia, o Dev Proxy envia a cadeia as-is, sem aspas à volta. Uma cadeia que começa com @ é tratada como um caminho para um ficheiro, relativamente ao ficheiro de erros, com o corpo da resposta. Como o Dev Proxy define o Content-Type cabeçalho para application/json, defina o Content-Type cabeçalho para corresponder ao seu conteúdo quando devolve conteúdo não JSON, por text/plainexemplo .
Valores por resposta Retry-After
Dev Proxy resolve @dynamic no Retry-After cabeçalho para qualquer código de estado, como 429, 503, ou 529. Corresponde ao nome do cabeçalho independentemente do caso. Quando se @dynamicresolve, também regista o pedido com o RetryAfterPlugin, que reporta os pedidos que a sua aplicação envia antes do Retry-After tempo terminar.
Por defeito, o Retry-After cabeçalho utiliza o valor global retryAfterInSeconds . Pode sobrescrever este valor por resposta usando a @dynamic=N sintaxe no ficheiro de respostas de erro, onde N é o número de segundos a esperar antes de tentar novamente.
{
"$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."
}
}
}
]
}
]
}
Neste exemplo, o Retry-After cabeçalho usa 17 segundos para esta resposta, independentemente da definição global retryAfterInSeconds . O valor incrementa em cada pedido throttled subsequente, tal como acontece com o token simples @dynamic .
Cabeçalho padrão Content-Type
Se uma resposta de erro tiver um body e não definir um Content-Type cabeçalho, o Dev Proxy devolve a resposta com o Content-Type: application/json cabeçalho. Para devolver um tipo de conteúdo diferente, adicione o Content-Type cabeçalho à resposta no ficheiro de erros. O Proxy de Desenvolvimento usa o valor que especificas.