Come creare un'API Web in ASP.NET Core con un database SQL in Visual Studio 2019 (2023)

Introduzione Nel tutorial di oggi, ti guideremo passo dopo passo nel processo di creazione di un'API Web in ASP.NET Core utilizzando un database SQL esistente. Questo tutorial è rivolto a coloro che hanno una conoscenza di base di .NET e SQL. Non mostreremo come creare un database, quindi ti consigliamo di creare un database nel tuo SQL Server Management Studio (SSMS) o un software simile prima di iniziare.

Passo 1: Creare il progetto Per iniziare, apri Visual Studio 2019 e crea un nuovo progetto. Seleziona "ASP.NET Core Web Application" come tipo di progetto e clicca su "Avanti". Assegna un nome al tuo progetto e scegli la posizione desiderata. Assicurati di selezionare la versione di ASP.NET Core 2.1 e di configurare l'autenticazione su "No Authentication". Seleziona anche il modello "API" e clicca su "Crea".

Passo 2: Creare i modelli delle tabelle esistenti Una volta creato il progetto, apri la Console Gestione pacchetti NuGet (Package Manager Console) selezionando "Strumenti" > "Gestione pacchetti NuGet" > "Console Gestione pacchetti" dal menu di Visual Studio. Nella console, digita il seguente comando e premi Invio:

Scaffold-DbContext "Server=localhost\SQLEXPRESS;Database=TutorialDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

Assicurati di sostituire "Server=localhost\SQLEXPRESS;Database=TutorialDatabase;Trusted_Connection=True;" con il nome del tuo server SQL e il nome del tuo database. Questo comando creerà automaticamente i modelli delle tabelle esistenti nel tuo progetto, nella cartella "Models" del tuo progetto.

Passo 3: Rimuovere il controller automaticamente generato e aggiungerne uno nuovo Nel tuo progetto, trova il file "ValuesController.cs" all'interno della cartella "Controllers". Rimuovi questo file facendo clic destro su di esso e selezionando "Elimina". Successivamente, fai clic destro sulla cartella "Controllers" e seleziona "Aggiungi" > "Controller". Nella finestra di dialogo che appare, seleziona "API Controller with actions, using Entity Framework" e clicca su "Aggiungi". Seleziona il modello di classe desiderato (ad esempio, "Products") e il contesto dei dati (dovrebbe esserci solo un'opzione disponibile). Clicca su "Aggiungi" per creare il nuovo controller.

Passo 4: Creare una stringa di connessione Apri il file "TutorialDatabaseContext.cs" e copia la stringa di connessione al database presente nel metodo "OnConfiguring". Successivamente, apri il file "appsettings.json" e aggiungi la seguente riga dopo la riga "AllowedHosts":

"ConnectionStrings": { "DatabaseConnection": "LA TUA STRINGA DI CONNESSIONE COPIATA DAL PASSAGGIO PRECEDENTE" }

Assicurati di sostituire "LA TUA STRINGA DI CONNESSIONE COPIATA DAL PASSAGGIO PRECEDENTE" con la stringa di connessione che hai copiato dal file "TutorialDatabaseContext.cs".

Passo 5: Creare i servizi Creiamo ora un servizio che fungerà da ponte tra il contesto dei dati e il controller. Questo servizio ci consentirà di scrivere le nostre funzioni e la logica di business in un luogo separato dal controller e dal contesto dei dati. Crea una cartella chiamata "Service" all'interno del tuo progetto e all'interno di questa cartella crea una classe chiamata "ProductsService.cs" e un'interfaccia chiamata "IProductsService.cs".

Aggiungi il seguente codice alla classe "ProductsService":

public class ProductsService : IProductsService { private readonly TutorialDatabaseContext _context;

public ProductsService(TutorialDatabaseContext context) { _context = context; }

public List GetAllProducts() { return _context.Products.ToList(); } }

All'interno dell'interfaccia "IProductsService", aggiungi il nome della funzione come mostrato di seguito:

public interface IProductsService { List GetAllProducts(); }

Passo 6: Configurare il file startup Apri il file "Startup.cs" e nel metodo "ConfigureServices", aggiungi il seguente codice:

services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DatabaseConnection"))); services.AddScoped<IProductsService, ProductsService>();

Il primo codice configurerà la stringa di connessione utilizzando la configurazione presente nel file "appsettings.json". Il secondo codice indicherà all'applicazione di utilizzare il servizio "ProductsService" nel controller. Assicurati di aggiungere un codice simile per ogni servizio che hai creato.

Passo 7: Modificare il controller Apri il file del controller che hai creato in precedenza (ad esempio, "ProductsController.cs") e commenta tutto il codice al di sotto del metodo "GetProducts" (il primo metodo HTTPGet). Modifica anche la configurazione del contesto utilizzando "IProductsService" invece di "TutorialDatabaseContext". Il codice dovrebbe assomigliare all'esempio seguente:

public class ProductsController : ControllerBase { private readonly IProductsService _productsService;

public ProductsController(IProductsService productsService) { _productsService = productsService; }

[HttpGet] public ActionResult<List> GetProducts() { return _productsService.GetAllProducts(); } }

Passo 8: Avviare l'applicazione Ora, puoi avviare l'applicazione e digitare "products" dopo "api/" nell'URL del tuo browser. L'applicazione mostrerà i dati presenti nel tuo database. Se non hai ancora aggiunto dati al tuo database, verrà visualizzato un array vuoto. Ti consigliamo di aggiungere alcuni dati per verificare che l'applicazione funzioni correttamente.

Conclusioni Congratulazioni! Ora hai imparato come creare un'API Web in ASP.NET Core utilizzando un database SQL esistente. Se hai bisogno di ulteriori funzionalità, come la visualizzazione dei dati in base all'ID o l'inserimento di nuovi dati, puoi aggiungere ulteriori metodi nel tuo controller e implementarli nel tuo servizio.

Grazie per aver letto questo tutorial e speriamo che ti sia stato d'aiuto! Se hai domande o suggerimenti su come migliorare questo tutorial o suggerimenti per futuri tutorial, non esitare a contattarci. Buon lavoro con la tua API Web in ASP.NET Core!

References

Top Articles
Latest Posts
Article information

Author: Patricia Veum II

Last Updated: 17/01/2024

Views: 5552

Rating: 4.3 / 5 (44 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Patricia Veum II

Birthday: 1994-12-16

Address: 2064 Little Summit, Goldieton, MS 97651-0862

Phone: +6873952696715

Job: Principal Officer

Hobby: Rafting, Cabaret, Candle making, Jigsaw puzzles, Inline skating, Magic, Graffiti

Introduction: My name is Patricia Veum II, I am a vast, combative, smiling, famous, inexpensive, zealous, sparkling person who loves writing and wants to share my knowledge and understanding with you.