Sviluppo di API RESTful in ASP.NET .NET Framework
Introduzione
Le API RESTful sono uno standard fondamentale per lo sviluppo di applicazioni web moderne. Permettono la comunicazione tra sistemi diversi utilizzando HTTP come protocollo di trasporto. In questo articolo esploreremo come creare un'API RESTful utilizzando ASP.NET .NET Framework, con esempi di codice, best practices e ottimizzazioni di sicurezza.
1️⃣ Creazione del Progetto
Per creare un'API RESTful in ASP.NET .NET Framework:
Apri Visual Studio e seleziona File → New → Project.
Scegli ASP.NET Web Application (.NET Framework) → Web API.
Dai un nome al progetto (es.
WebAPIExample
) e clicca su Create.
2️⃣ Definizione del Controller
Un controller in ASP.NET gestisce le richieste HTTP (GET, POST, PUT, DELETE). Esempio di un controller semplice:
using System.Collections.Generic;
using System.Web.Http;
namespace WebAPIExample.Controllers
{
public class UtentiController : ApiController
{
private static List<string> utenti = new List<string> { "Marco", "Giulia", "Luca" };
// GET api/utenti
public IEnumerable<string> Get()
{
return utenti;
}
// GET api/utenti/5
public string Get(int id)
{
return utenti[id];
}
// POST api/utenti
public void Post([FromBody] string nome)
{
utenti.Add(nome);
}
// DELETE api/utenti/5
public void Delete(int id)
{
utenti.RemoveAt(id);
}
}
}
3️⃣ Routing e Configurazione
Nel file WebApiConfig.cs
, configuriamo il routing per l'API:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Route di default
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
4️⃣ Autenticazione con JWT
Per proteggere l'API, possiamo utilizzare JWT (JSON Web Token) per l'autenticazione.
public class AuthController : ApiController
{
[HttpPost]
public IHttpActionResult Login(string username, string password)
{
if (username == "admin" && password == "admin")
{
var token = JwtManager.GenerateToken(username);
return Ok(token);
}
return Unauthorized();
}
}
5️⃣ Validazione dei Dati
Per evitare errori e dati non validi nel database, possiamo integrare una validazione nel Controller:
public void Post([FromBody] string nome)
{
if (string.IsNullOrWhiteSpace(nome))
{
throw new HttpResponseException(HttpStatusCode.BadRequest);
}
utenti.Add(nome);
}
6️⃣ Gestione degli Errori e Logging
Per una gestione efficiente degli errori, possiamo implementare un middleware globale:
public class GlobalExceptionHandler : ExceptionHandler
{
public override void Handle(ExceptionHandlerContext context)
{
context.Result = new ResponseMessageResult(
context.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Errore interno del server"));
}
}
GlobalConfiguration.Configuration.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
Conclusioni
Abbiamo visto come creare un'API RESTful in ASP.NET .NET Framework, partendo dalla creazione del progetto, passando per il controller, l'autenticazione JWT, la validazione e la gestione degli errori.