diff --git a/doc/fr/general-architecture.md b/doc/fr/general-architecture.md index 2ddb23a..b490d45 100644 --- a/doc/fr/general-architecture.md +++ b/doc/fr/general-architecture.md @@ -5,14 +5,16 @@ ### Déploiement mono-noeud ![](../resources/deployment_fr.png) + ## Terminologie Voici une liste des termes utilisés dans le lexique Bouncer. + ### Proxy Un "proxy" est une entité logique définissant le relation suivante: -- Un ou plusieurs patrons de filtrage sous la forme `:`. Ceux ci identifient le ou les domaines associés à l'entité; +- Un ou plusieurs patrons de filtrage sous la forme d'un patron d'URL avec le caractère `*` comme caractère générique. Ceux ci identifient le ou les domaines/chemins associés à l'entité; - Une URL cible qui servira de base pour la réécriture des requêtes. Un "proxy" peut avoir zéro ou plusieurs "layers" associés. @@ -27,4 +29,4 @@ Un "layer" (calque) est une entité logique définissant un traitement à appliq Un "layer" peut être activé ou désactivé. -Un "layer" a un poids qui définit son niveau de priorité dans la pile de traitement (plus son poids est élevé plus il est prioritaire). \ No newline at end of file +Un "layer" a un poids qui définit son niveau de priorité dans la pile de traitement (plus son poids est élevé plus il est prioritaire). diff --git a/doc/fr/references/admin_api.md b/doc/fr/references/admin_api.md index e412c5a..aa63b99 100644 --- a/doc/fr/references/admin_api.md +++ b/doc/fr/references/admin_api.md @@ -147,7 +147,9 @@ Lister les proxies existants { "name": "myproxy", "weight": 0, - "enabled": false + "enabled": false, + "createdAt": "2018-12-10T13:45:00.000Z", + "updatedAt": "2018-12-10T13:45:00.000Z" } ] } @@ -179,3 +181,169 @@ Supprimer le proxy #### Source Voir [`internal/admin/proxy_route.go#deleteProxy()`](../../../internal/admin/proxy_route.go#deleteProxy) + +### `POST /api/v1/proxies/{proxyName}/layers` + +Créer un nouveau layer pour un proxy donné + +#### Paramètres + +- `{proxyName}` - Nom du proxy sur lequel créer le layer + +#### Exemple de corps de requête + +```json +{ + "name": "mylayer", // OBLIGATOIRE - Nom du layer + "type": "", // OBLIGATOIRE - Type du layer, voir doc/fr/references/layers + "options": {} // OPTIONNEL - Options associées au layer, voir doc/fr/references/layers +} +``` + +#### Exemple de résultat + +```json +{ + "data": { + "layer": { + "name": "mylayer", + "type": "", + "enabled": false, + "weight": 0, + "options": {}, + "createdAt": "2018-12-10T13:45:00.000Z", + "updatedAt": "2018-12-10T13:45:00.000Z" + } + } +} +``` + +#### Source + +Voir [`internal/admin/layer_route.go#createLayer()`](../../../internal/admin/layer_route.go#createLayer) + +### `GET /api/v1/proxies/{proxyName}/layers/{layerName}` + +Récupérer les informations complètes sur un layer + +#### Paramètres + +- `{proxyName}` - Nom du proxy parent +- `{layerName}` - Nom du layer + +#### Exemple de résultat + +```json +{ + "data": { + "layer": { + "name": "mylayer", + "type": "", + "enabled": false, + "weight": 0, + "options": {}, + "createdAt": "2018-12-10T13:45:00.000Z", + "updatedAt": "2018-12-10T13:45:00.000Z" + } + } +} +``` + +#### Source + +Voir [`internal/admin/layer_route.go#getLayer()`](../../../internal/admin/layer_route.go#getLayer) + +### `PUT /api/v1/proxies/{proxyName}/layers/{layerName}` + +Modifier un layer + +#### Paramètres + +- `{proxyName}` - Nom du proxy parent +- `{layerName}` - Nom du layer + +#### Exemple de corps de requête + +```json +{ + "weight": 100, // OPTIONNEL - Poids à associer au layer + "enabled": true, // OPTIONNEL - Activer/désactiver le layer + "options": {} // OPTIONNEL - Modifier les options associées au layer, voir doc/fr/references/layers +} +``` + +#### Exemple de résultat + +```json +{ + "data": { + "layer": { + "name": "mylayer", + "type": "", + "enabled": false, + "weight": 0, + "options": {}, + "createdAt": "2018-12-10T13:45:00.000Z", + "updatedAt": "2018-12-10T13:45:00.000Z" + } + } +} +``` + +#### Source + +Voir [`internal/admin/layer_route.go#updateLayer()`](../../../internal/admin/layer_route.go#updateLayer) + +### `GET /api/v1/proxies/{proxyName}/layers?names={name1,name2,...}` + +Lister les layers existants + +#### Paramètres + +- `{proxyName}` - Nom du proxy parent +- `{names}` - Optionnel - Liste des noms de proxy à appliquer en tant que filtre + +#### Exemple de résultat + +```json +{ + "data": { + "layers": [ + { + "name": "mylayer", + "weight": 0, + "enabled": false, + "createdAt": "2018-12-10T13:45:00.000Z", + "updatedAt": "2018-12-10T13:45:00.000Z" + } + ] + } +} +``` + +#### Source + +Voir [`internal/admin/layer_route.go#queryLayers()`](../../../internal/admin/layer_route.go#queryLayers) + +## `DELETE /api/v1/proxies/{proxyName}/layers/{layerName}` + +Supprimer le layer + +#### Paramètres + +- `{proxyName}` - Nom du proxy parent +- `{layerName}` - Nom du layer + +#### Exemple de résultat + +```json +{ + "data": { + "layerName": "mylayer" + } +} +``` + +#### Source + +Voir [`internal/admin/layer_route.go#deleteLayer()`](../../../internal/admin/layer_route.go#deleteLayer)