Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le richieste hanno esito negativo con un errore selezionato casuale dal file contenente errori fittizi.
Esempio di configurazione
{
"$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"
}
}
Proprietà di configurazione
| Proprietà | Descrizione | Predefinito |
|---|---|---|
errorsFile |
Percorso del file che contiene risposte di errore. | errors.json |
rate |
Percentuale di richieste che non riescono con un errore casuale. Valore compreso tra 0 e 100. | 50 |
retryAfterInSeconds |
Numero di secondi di attesa prima di ripetere la richiesta. Incluso nell'intestazione della risposta Retry-After per la limitazione dinamica. |
5 |
Opzioni della riga di comando
| Nome | Descrizione | Predefinito |
|---|---|---|
-f, --failure-rate <failure rate> |
Percentuale di richieste che non riescono con un errore casuale. Valore compreso tra 0 e 100. | 50 |
Osservazioni:
Corpo della risposta
Se si imposta la body proprietà di una risposta di errore a un oggetto JSON o a una matrice, Dev Proxy la serializza in JSON. Se lo si imposta su una stringa, Dev Proxy invia la stringa as-is, senza virgolette circostanti. Una stringa che inizia con @ viene considerata come un percorso di un file, rispetto al file degli errori, con il corpo della risposta. Poiché Dev Proxy imposta per impostazione predefinita l'intestazione Content-Type su application/json, impostare l'intestazione Content-Type in modo che corrisponda al contenuto quando si restituisce contenuto non JSON, ad esempio text/plain.
Valori per risposta Retry-After
Il proxy di sviluppo viene @dynamic risolto nell'intestazione Retry-After per qualsiasi codice di stato, ad esempio 429, 503o 529. Corrisponde al nome dell'intestazione indipendentemente dalla distinzione tra maiuscole e minuscole. Quando risolve @dynamic, registra anche la richiesta con RetryAfterPlugin, che segnala le richieste inviate dall'app prima dell'ora Retry-After di inattività.
Per impostazione predefinita, l'intestazione Retry-After usa il valore globale retryAfterInSeconds . È possibile eseguire l'override di questo valore in base alla risposta usando la @dynamic=N sintassi nel file delle risposte agli errori, dove N è il numero di secondi di attesa prima di riprovare.
{
"$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."
}
}
}
]
}
]
}
In questo esempio l'intestazione Retry-After usa secondi 17 per questa risposta, indipendentemente dall'impostazione globale retryAfterInSeconds . Il valore aumenta in ogni richiesta limitata successiva, come con il token normale @dynamic .
Intestazione predefinita Content-Type
Se una risposta di errore ha e body non definisce un'intestazione Content-Type , Dev Proxy restituisce la risposta con l'intestazione Content-Type: application/json . Per restituire un tipo di contenuto diverso, aggiungere l'intestazione Content-Type alla risposta nel file degli errori. Dev Proxy usa il valore specificato.