Skip to content

Patterns - comment ajouter / modifier

Ajouter un endpoint REST custom

  1. Creer XxxApiController : UmbracoApiController dans Controllers/.
  2. La route est automatique : ~/umbraco/api/Xxx/{Methode}.
  3. Mettre la logique metier dans un service (Services/) derriere une interface (Interfaces/), injecte par constructeur.
  4. Si l'endpoint doit etre protege (import, reindex), verifier le header X-Webhook-Secret.

Ajouter un service

  1. Interface dans Interfaces/IXxxService.cs.
  2. Implementation dans Services/XxxService.cs.
  3. Enregistrer scoped dans Program.cs (AddScoped<IXxxService, XxxService>).

Ajouter un handler de notification

  1. Implementer INotificationHandler<TNotification> (ou async) dans Notifications/.
  2. Enregistrer dans SiteComposer.cs via builder.AddNotificationHandler<TNotification, THandler>().
  3. Exemples existants : indexation media au save, webhook au publish, injection d'URLs de preview.

Modifier le schema (document types / data types)

  1. Editer dans le backoffice Umbraco.
  2. uSync exporte vers src/Web/uSync/v9/ (ExportOnSave: Settings).
  3. Committer les .config : c'est le seul moyen de propager le schema vers staging/prod (uSync importe au demarrage).
  4. ModelsBuilder regenere les modeles C# (SourceCodeAuto).

Ajouter / personnaliser le rendu d'un block (HTML pour consommateurs)

  1. Ajouter un partial dans Views/Partials/Blocks/.
  2. Le mapper dans BlockGridHtmlRenderer (alias de content type -> partial).
  3. Le rendu se fait via ViewRenderService.

Personnaliser le tri/index Delivery API

Voir PublishedDateSort comme modele : implementer ISortHandler et/ou IContentIndexHandler, enregistrer via AddUnique dans SiteComposer. Penser a reconstruire l'index Examine apres coup.

Contributors

No contributors

Changelog

No recent changes