@aventii/http-utils (1.0.0)

Published 2026-08-18 11:25:16 +00:00 by Valentin

Installation

@aventii:registry=
npm install @aventii/http-utils@1.0.0
"@aventii/http-utils": "1.0.0"

About this package

@aventii/http-utils

Utilitaires HTTP communs aux services Aventii.

Ce package contient des mécanismes génériques liés au traitement des requêtes HTTP. Il est conçu pour être utilisé par plusieurs microservices et plusieurs produits, sans dépendre d'aucune logique métier particulière.

Installation

Le package est distribué sur le registre npm privé Aventii.

npm install @aventii/http-utils

L'accès au registre nécessite une configuration npm Aventii valide.

Utilisation

Normalisation de routes

Le package expose normalizeRoute, qui transforme les segments variables d'une URL en identifiants stables.

const { normalizeRoute } = require('@aventii/http-utils');

normalizeRoute('/users/0123456789abcdef01234567');
// /users/:id

normalizeRoute('/users/123e4567-e89b-12d3-a456-426614174000');
// /users/:uuid

La normalisation permet notamment d'agréger correctement des métriques par route.

Sans normalisation :

/users/507f1f77bcf86cd799439011
/users/507f191e810c19729de860ea
/users/507f1f77bcf86cd799439012

constituent trois clés différentes.

Après normalisation :

/users/:id

elles appartiennent à la même route logique.

Règles génériques

normalizeRoute applique les transformations communes suivantes :

  • suppression de la query string ;
  • normalisation des UUID en :uuid ;
  • normalisation des ObjectId MongoDB en :id ;
  • normalisation de /favicon.ico en /favicon.

Une route ne correspondant à aucune règle est retournée sans modification.

Règles spécifiques à un service

Le package expose également createRouteNormalizer.

Il permet à un service de compléter les règles génériques sans introduire de connaissance métier dans @aventii/http-utils.

const {
    createRouteNormalizer
} = require('@aventii/http-utils');

const normalizeRoute = createRouteNormalizer({
    rules: [
        {
            pattern: /^\/documents\/[0-9a-f]{24}\/validate$/,
            replacement: '/documents/:id/validate'
        }
    ]
});

Les règles fournies par le consommateur sont appliquées avant les règles génériques.

Cela permet notamment de préserver une sémantique plus précise :

/documents/:id/validate

plutôt qu'une simple normalisation générique de l'identifiant.

API

normalizeRoute(path)

Normalise une route en utilisant uniquement les règles génériques.

Paramètre

path --- chemin HTTP à normaliser.

Retour

Le chemin normalisé. Une valeur non textuelle est retournée sans modification.

createRouteNormalizer(options)

Crée un normaliseur pouvant appliquer des règles supplémentaires.

Options

{
    rules: [
        {
            pattern: RegExp,
            replacement: String
        }
    ]
}

Retour

Une fonction normalizeRoute(path) configurée.

Tests

npm test

Les tests du package couvrent :

  • les règles génériques ;
  • les cas limites ;
  • le mécanisme d'extension ;
  • l'ordre d'application des règles.

Les règles métier propres aux services restent testées dans les services concernés.

Dependencies

Development Dependencies

ID Version
jest ^30.4.2
Details
npm
2026-08-18 11:25:16 +00:00
178
UNLICENSED
latest
2.4 KiB
Assets (1)
Versions (1) View all
1.0.0 2026-08-18