Le plug-in custom-response renvoie des codes d'état HTTP, des en-têtes et des corps de réponse personnalisés. Utilisez-le pour créer des réponses simulées ou remplacer les réponses associées à certains codes d'état, par exemple pour afficher un message personnalisé lorsqu'une politique de limitation du débit est déclenchée.
Type de plug-in
Plug-in lié au protocole de transmission.
Champs
|
Champ |
Type de données |
Obligatoire |
Valeur par défaut |
Description |
|
status_code |
number |
Non |
200 |
Code d'état HTTP personnalisé. |
|
headers |
array of string |
Non |
- |
En-têtes de réponse HTTP personnalisés. Séparez chaque paire clé-valeur par |
|
body |
string |
Non |
- |
Corps de la réponse HTTP personnalisé. |
|
enable_on_status |
array of number |
Non |
- |
Code d'état HTTP qui déclenche la réponse personnalisée. Si vous laissez ce champ vide, la réponse personnalisée s'applique à toutes les requêtes, quel que soit le code d'état d'origine. |
Exemples
Renvoyer une réponse personnalisée dans des scénarios de réponse simulée
status_code: 200
headers:
- Content-Type=application/json
- Hello=World
body: "{\"hello\":\"world\"}"
Cette configuration renvoie la réponse suivante :
HTTP/1.1 200 OK
Content-Type: application/json
Hello: World
Content-Length: 17
{"hello":"world"}
Renvoyer une réponse personnalisée lorsque la limitation du débit est déclenchée
enable_on_status:
- 429
status_code: 302
headers:
- Location=https://example.com
La limitation du débit renvoie généralement le code d'état HTTP 429. Avec cette configuration, la passerelle renvoie plutôt la réponse personnalisée suivante :
HTTP/1.1 302 Found
Location: https://example.com
Cela redirige les requêtes limitées vers une autre page, telle qu'une page statique hébergée sur un CDN.
Pour renvoyer d'autres codes d'état lorsque la limitation du débit est déclenchée, configurez les champs comme décrit dans la section « Renvoyer une réponse personnalisée dans des scénarios de réponse simulée ».
Bloquer les requêtes pour des routes ou des noms de domaine spécifiques
Appliquez les configurations de plug-in suivantes aux routes route-a et route-b :
body: "{\"hello\":\"world\"}"
Appliquez la configuration de plug-in suivante aux noms de domaine *.example.com et test.com :
enable_on_status:
- 429
status_code: 200
headers:
- Content-Type=application/json
body: "{\"errmsg\": \"rate limited\"}"
route-aetroute-bsont les routes spécifiées lors de la création des routes de la passerelle. Si une requête correspond à une route, les règles configurées pour cette route prennent effet.*.example.comettest.comcorrespondent aux noms de domaine présents dans les requêtes. Si une requête correspond à un nom de domaine, les règles configurées pour ce nom de domaine prennent effet.Les règles sont appliquées séquentiellement. Dès qu'une règle correspond, les règles suivantes sont ignorées.