Api Starter Kit - Asp.Net Core
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:
- si scrivono le specifiche in formato OpenAPI v3;
- si genera lo scheletro del codice tramite i tool Swagger;
- 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-*eRetry-After; - risposte di errore generate casualmente, come
503 Service Unavailablee429 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