Sviluppo di API RESTful in ASP.NET .NET Framework

Sviluppo di API RESTful in ASP.NET .NET Framework

Marco Puccio

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:

  1. Apri Visual Studio e seleziona File → New → Project.

  2. Scegli ASP.NET Web Application (.NET Framework) → Web API.

  3. 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.