Aller au contenu

Quickstart Node.js / TypeScript

mic-node applique les mêmes frontières MIC à Node.js : contrats exécutables, routes indépendantes du framework, erreurs de domaine canoniques, injection explicite et tests du comportement public.

Prérequis

  • Node.js 24 ou version ultérieure ;
  • pnpm.

Les quinze paquets @mic-struct sont publiés sur le registre public npm. Leur installation ne demande ni jeton ni configuration de registre propre à MIC.

Générer et vérifier un service

pnpm dlx @mic-struct/create-mic-service ./my-service
cd my-service
pnpm install
pnpm verify
pnpm start

Le projet généré fournit immédiatement :

  • GET /health et GET /ready ;
  • le contrat OpenAPI 3.1 sur GET /openapi.json ;
  • POST /api/v1/widgets et GET /api/v1/widgets ;
  • une CLI opérateur pour l'état de préparation, l'export OpenAPI, le catalogue d'événements et le rejeu ;
  • 12 tests du service, dont un test HTTP de bout en bout ;
  • une erreur widgets.already_exists non transitoire, partagée entre l'exécution et le contrat OpenAPI.

Le serveur écoute sur le port 3000 par défaut. La commande suivante exporte le contrat sans démarrer de serveur HTTP :

pnpm run cli openapi --pretty > openapi.json

Déclarer une route

import { created, route, schema, wrapHttpSuccess } from "@mic-struct/mic-core"

const CreateWidget = schema.object({
  name: schema.string({ minLength: 1 }),
})

export const createWidget = route({
  method: "POST",
  path: "/api/v1/widgets",
  name: "widgets.create",
  category: "widgets",
  body: CreateWidget,
  successStatusCode: 201,
  handler: async ({ body }) => created(
    wrapHttpSuccess({ id: "widget-1", name: body.name }),
  ),
})

La même route est servie par Node HTTP, Express, Fastify, Hono ou NestJS sans modifier le gestionnaire.

Paquets

Besoin Paquets
Contrats, erreurs, HTTP, authentification, CLI @mic-struct/mic-core
Client inter-service signé @mic-struct/mic-client
Persistance, cache, outbox, files, temps réel, planification @mic-struct/mic-datastore
Adaptateurs HTTP @mic-struct/mic-node-http, @mic-struct/mic-express, @mic-struct/mic-fastify, @mic-struct/mic-hono, @mic-struct/mic-nest
Kafka, NATS et Redis @mic-struct/mic-kafka, @mic-struct/mic-nats, @mic-struct/mic-redis
Observabilité et résilience @mic-struct/mic-observability, @mic-struct/mic-resilience
Autorisation, limitation de débit, OIDC @mic-struct/mic-platform
Générateur @mic-struct/create-mic-service

Les 15 paquets déclarent engines.node >=24.0.0. Chaque publication officielle est déclenchée par un tag protégé, vérifie les archives npm, puis installe les paquets publiés dans un projet vierge et exécute le service généré.

Consultez le dépôt mic-node pour l'API complète et les décisions d'architecture.