Skip to content

Delivery API & endpoints custom

Content Delivery API v2 (standard Umbraco)

  • Activee dans Program.cs (.AddDeliveryApi()), config dans appsettings.json : DeliveryApi.Enabled=true, PublicAccess=true (pas de cle), Media.Enabled=true mais Media.PublicAccess=false, RichTextOutputAsJson=false (sortie HTML).
  • Endpoint typique consomme par les frontends :
    GET /umbraco/delivery/api/v2/content/item/{id}?expand=properties[$all]&fields=properties[$all]

Tri/filtre custom datePublished:

  • DeliveryApi/PublishedDateSort.cs implemente :
    • ISortHandler : parse datePublished:asc / datePublished:desc dans les requetes Delivery API.
    • IContentIndexHandler : ajoute le champ datePublished (type Date) a l'index Delivery API.
  • Enregistre via AddUnique dans SiteComposer.
  • Gotcha : si l'ordre parait faux apres un ajout d'articles, reconstruire l'index interne Examine depuis le backoffice.

Endpoints REST custom

Tous heritent de UmbracoApiController (route ~/umbraco/api/{Controller sans Api}/{Methode}).

ControllerEndpointVerbeRole
ArticlesApiController/umbraco/api/ArticlesApi/GetArticleIdFromSlug?slug=...GETResout un slug d'article en key (Guid)
ArticlesApiController/umbraco/api/ArticlesApi/GetTags?skin=...GETListe des tags uniques d'un skin
AuthorsApiController/umbraco/api/AuthorsApi/GetAuthors?skin=&page=&pageSize=GETListe paginee d'auteurs (firstname, lastname, function, quote, image)
MultimediaApiController/umbraco/api/MultimediaApi/ReindexPOSTRecalcule mediaIndex pour tous les articles (header X-Webhook-Secret)
ImportApiController/umbraco/api/ImportApi/CreateArticlePOSTCree un article complet (voir ../modules/import-migration.md)
ImportApiController/umbraco/api/ImportApi/CreateAuthorPOSTCree un auteur
ImportApiController/umbraco/api/ImportApi/DeleteArticle?id=...POSTSupprime un article (cleanup migration/tests)

MediasApiController est entierement desactive (commente) : le listing media passe par la Delivery API.

Webhook d'invalidation de cache

  • ArticleChangedWebhookHandler (declenche sur publish/unpublish/delete d'article) POST vers PublishWebhook.Url (ex. .../umbraco/api/HeadlessWebhook/ArticleChanged?id={key}) avec le header X-Webhook-Secret.
  • Cote frontend (accm-website), ce webhook invalide le cache de l'article.

Contributors

No contributors

Changelog

No recent changes