Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Réécrit les demandes.
Exemple de configuration
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
"plugins": [
{
"name": "RewritePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "rewritePlugin"
}
],
"rewritePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.schema.json",
"rewritesFile": "rewrites.json"
}
}
Propriétés de configuration
| Propriété | Descriptif | Par défaut |
|---|---|---|
rewritesFile |
Chemin d’accès au fichier contenant des définitions de réécriture | rewrites.json |
Options de ligne de commande
Aucun(e)
Réécrire des exemples de fichiers
Voici des exemples de règles de réécriture.
Réécrire toutes les requêtes de HTTP vers HTTPS
Réécrire toutes les requêtes de HTTP vers HTTPS. Dans ce contexte, toutes les requêtes sont configurées avec le proxy de développement ou le rewritePlugin.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^http://(.*)"
},
"out": {
"url": "https://$1"
}
}
]
}
Définir un en-tête de requête
Définissez l’en-tête Accept-Language sur toutes les requêtes https://api.contoso.comsur . Si la demande a déjà l’en-tête, le plug-in remplace sa valeur. Si l’en-tête est manquant, le plug-in l’ajoute. Étant donné que la règle ne spécifie pas d’URL de sortie , le plug-in ne modifie pas l’URL de la demande.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^https://api\\.contoso\\.com/"
},
"out": {
"headers": [
{
"name": "Accept-Language",
"value": "nl-NL"
}
]
}
}
]
}
Réécrire les demandes vers une URL à partir d’une variable d’environnement
Réécrire les demandes vers https://api.contoso.com l’URL de base stockée dans la API_BASE_URL variable d’environnement, en conservant le reste du chemin d’accès.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^https://api\\.contoso\\.com/(.*)"
},
"out": {
"url": "${env:API_BASE_URL}/$1"
}
}
]
}
Propriétés de fichier fictifs
| Propriété | Descriptif | Obligatoire |
|---|---|---|
rewrites |
Tableau d’objets de réécriture qui définit la liste des règles de réécriture que le RewritePlugin applique aux requêtes qu’il intercepte | Oui |
Réécrire l’objet
Chaque règle de réécriture a les propriétés suivantes :
| Propriété | Descriptif | Obligatoire |
|---|---|---|
in |
Réécrire le modèle pour correspondre à la requête entrante. | Oui |
out |
Réécrire le modèle pour réécrire la requête | Oui |
Notes
Si la requête intercepte RewritePlugin, ne correspond pas à toutes les propriétés définies dans le modèle, le plug-in n’applique pas la règle de réécriture à la requête.
Réécrire le modèle
Chaque modèle de réécriture a les propriétés suivantes :
| Propriété | Descriptif | Obligatoire | Valeur par défaut | Exemple de valeur |
|---|---|---|---|---|
url |
Dans le modèle , expression régulière que le plug-in s’applique à l’URL. Dans le modèle out , URL pour réécrire la requête. Si vous l’omettez dans le modèle out , le plug-in ne modifie pas l’URL de la requête. | Oui dans, non en dehors | ^http://(.*) |
|
headers |
Tableau d’en-têtes de requête à définir sur la demande. Pris en charge uniquement dans le modèle out . | Non |
Notes
Le modèle out doit spécifier url, headersou les deux.
Si vous utilisez des groupes de capture dans l’expression régulière dans les modèles, vous pouvez les référencer dans le modèle out. Par exemple, si vous souhaitez réécrire http://example.com/foohttps://example.com/foo, vous pouvez utiliser la règle de réécriture suivante :
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^http://(.*)"
},
"out": {
"url": "https://$1"
}
}
]
}
Dans l’URL de sortie , vous pouvez référencer des variables d’environnement à l’aide de la ${env:VAR_NAME} syntaxe. Le proxy de développement insère la valeur de la variable d’environnement as-is, de sorte que la valeur peut également faire référence aux groupes de capture à partir du modèle. Le proxy de développement résout uniquement les variables d’environnement pour les requêtes qui correspondent au modèle et ne développe pas les variables d’environnement dans le modèle . Si aucune variable d’environnement référencée n’est définie, le proxy de développement enregistre une erreur et ignore la règle de réécriture.
En-tête de requête
Chaque en-tête de requête a les propriétés suivantes :
| Propriété | Descriptif | Obligatoire |
|---|---|---|
name |
Nom de l’en-tête de requête | Oui |
value |
Valeur à définir pour l’en-tête de requête | Oui |
Notes
Le plug-in correspond aux noms d’en-têtes sans respect de la casse. Si la demande a déjà l’en-tête, le plug-in remplace sa valeur. Si l’en-tête est manquant, le plug-in l’ajoute.
Le plug-in définit des en-têtes uniquement sur les demandes dont l’URL correspond au modèle d’URL. Le plug-in évalue la correspondance avant d’appliquer la réécriture d’URL de la même règle. Par conséquent, lorsqu’une règle réécrit à la fois l’URL et les en-têtes, les en-têtes s’appliquent aux mêmes requêtes que la réécriture d’URL.
Vous pouvez référencer des variables d’environnement dans les valeurs d’en-tête à l’aide de la ${env:VAR_NAME} syntaxe. Le proxy de développement les résout de la même façon que dans l’URL sortante et ignore la règle de réécriture si aucune variable d’environnement référencée n’est définie. Les valeurs d’en-tête ne prennent pas en charge les groupes de capture à partir du modèle.