Filippo D'Errigo Ideas, notes & experiments
Codice Sorgente Live

Api Starter Kit - Asp.Net Core

C# ASP.NET Core 7.0 OpenAPI v3 Swagger Docker
Api Starter Kit  - Asp.Net Core
Codice sorgente github.com/fderrigo/api-starter-kit-aspnetcore


Template ASP.NET Core per progettare e pubblicare API REST interoperabili secondo le Linee Guida del Modello di Interoperabilità di AgID.

Il progetto nasce come punto di partenza per chi deve esporre servizi conformi agli standard della Pubblica Amministrazione italiana, con un approccio chiaro: prima si definisce il contratto API, poi si genera lo scheletro applicativo, infine si implementa la logica del servizio.

Approccio design-first

Il progetto segue un modello design-first:

  1. si scrivono le specifiche in formato OpenAPI v3;
  2. si genera lo scheletro del codice tramite i tool Swagger;
  3. si implementano i metodi applicativi mantenendo il contratto API come riferimento principale.

Questo rende l’API più leggibile, documentabile e allineata agli standard di interoperabilità fin dall’inizio.

Servizio dimostrativo

Il template include un servizio dimostrativo chiamato Ora esatta, composto da due endpoint:

  • GET /datetime/v1/echo
    restituisce un timestamp del server in formato RFC5424;
  • GET /datetime/v1/status
    restituisce lo stato del servizio.

Gli endpoint non sono semplici esempi “felici”: simulano comportamenti realistici di un servizio in produzione, inclusi errori e limiti operativi.

Comportamenti simulati

Il progetto include:

  • gestione degli errori in formato problem+json, secondo RFC 7807;
  • header di rate limiting, tra cui X-RateLimit-* e Retry-After;
  • risposte di errore generate casualmente, come 503 Service Unavailable e 429 Too Many Requests, utili per testare la resilienza dei client.

Le specifiche OpenAPI restano navigabili tramite Swagger UI, così da poter esplorare e testare gli endpoint direttamente dal browser.

Repository

Repository originale:
https://github.com/fderrigo/api-starter-kit-aspnetcore

Il progetto è stato successivamente forkato da Team Digitale nel repository ufficiale del Piano Triennale ICT:
https://github.com/teamdigitale/api-starter-kit-aspnetcore

Condividi
Torna al Lab