.net Core Web Api Entity Framework Code First

7 min read Jun 03, 2024
.net Core Web Api Entity Framework Code First

Créer une API Web avec ASP.NET Core et Entity Framework Code First

ASP.NET Core est un framework web open source puissant et moderne pour la création d'applications web et d'API. Entity Framework Core est un ORM (Object-Relational Mapper) qui facilite la communication entre vos applications .NET et les bases de données relationnelles.

Dans ce tutoriel, nous allons explorer comment créer une API Web simple en utilisant ASP.NET Core et Entity Framework Code First.

Configuration de l'environnement de développement

Avant de commencer, assurez-vous que vous avez installé les prérequis suivants :

  • .NET 6 SDK : Téléchargez et installez le .NET 6 SDK depuis le site officiel.
  • Visual Studio Code (ou un IDE similaire) : Téléchargez et installez Visual Studio Code, un éditeur de code gratuit et populaire.

Création d'un nouveau projet ASP.NET Core

  1. Ouvrez Visual Studio Code et créez un nouveau dossier pour votre projet.
  2. Ouvrez le terminal intégré de Visual Studio Code (menu "Terminal").
  3. Exécutez la commande suivante pour créer un nouveau projet ASP.NET Core Web API :
dotnet new webapi -o MyWebApi

Remplacez MyWebApi par le nom de votre projet.

Installation des packages NuGet

  1. Naviguez jusqu'au répertoire de votre projet dans le terminal.
  2. Installez les packages NuGet nécessaires :
dotnet add package Microsoft.EntityFrameworkCore.SqlServer 

Remplacez SqlServer par le fournisseur de base de données que vous souhaitez utiliser (par exemple, Sqlite, PostgreSql).

Création du modèle de données

  1. Créez un nouveau fichier C# nommé Todo.cs dans le dossier Models.
  2. Ajoutez le code suivant pour définir votre modèle de données Todo:
using System.ComponentModel.DataAnnotations;

namespace MyWebApi.Models
{
    public class Todo
    {
        [Key]
        public int Id { get; set; }

        [Required]
        public string? Title { get; set; }

        public bool IsCompleted { get; set; }
    }
}

Configuration d'Entity Framework Core

  1. Créez un nouveau fichier C# nommé TodoContext.cs dans le dossier Data.
  2. Ajoutez le code suivant pour configurer votre contexte de données :
using Microsoft.EntityFrameworkCore;
using MyWebApi.Models;

namespace MyWebApi.Data
{
    public class TodoContext : DbContext
    {
        public TodoContext(DbContextOptions options) : base(options)
        {
        }

        public DbSet Todos { get; set; }
    }
}

Configuration du service de base de données

  1. Ouvrez le fichier Program.cs et ajoutez les lignes suivantes dans la méthode ConfigureServices :
builder.Services.AddDbContext(options =>
{
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"));
});

Remplacez DefaultConnection par le nom de votre chaîne de connexion dans le fichier appsettings.json.

Création de l'API Web

  1. Ouvrez le fichier Controllers/WeatherForecastController.cs et renommez-le en TodoController.cs.
  2. Supprimez le code existant et remplacez-le par le code suivant :
using Microsoft.AspNetCore.Mvc;
using MyWebApi.Data;
using MyWebApi.Models;

namespace MyWebApi.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class TodoController : ControllerBase
    {
        private readonly TodoContext _context;

        public TodoController(TodoContext context)
        {
            _context = context;
        }

        // GET: api/Todo
        [HttpGet]
        public async Task>> GetTodos()
        {
            return await _context.Todos.ToListAsync();
        }

        // GET: api/Todo/5
        [HttpGet("{id}")]
        public async Task> GetTodo(int id)
        {
            var todo = await _context.Todos.FindAsync(id);

            if (todo == null)
            {
                return NotFound();
            }

            return todo;
        }

        // POST: api/Todo
        [HttpPost]
        public async Task> PostTodo(Todo todo)
        {
            _context.Todos.Add(todo);
            await _context.SaveChangesAsync();

            return CreatedAtAction("GetTodo", new { id = todo.Id }, todo);
        }

        // PUT: api/Todo/5
        [HttpPut("{id}")]
        public async Task PutTodo(int id, Todo todo)
        {
            if (id != todo.Id)
            {
                return BadRequest();
            }

            _context.Entry(todo).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TodoExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return NoContent();
        }

        // DELETE: api/Todo/5
        [HttpDelete("{id}")]
        public async Task DeleteTodo(int id)
        {
            var todo = await _context.Todos.FindAsync(id);
            if (todo == null)
            {
                return NotFound();
            }

            _context.Todos.Remove(todo);
            await _context.SaveChangesAsync();

            return NoContent();
        }

        private bool TodoExists(int id)
        {
            return _context.Todos.Any(e => e.Id == id);
        }
    }
}

Exécution de l'API Web

  1. Exécutez la commande suivante pour démarrer l'application :
dotnet run
  1. Ouvrez votre navigateur web et accédez à l'URL http://localhost:5000/swagger/index.html.

  2. Vous pouvez maintenant interagir avec votre API Web en utilisant l'interface Swagger.

Conclusion

Dans ce tutoriel, nous avons créé une API Web simple en utilisant ASP.NET Core et Entity Framework Code First. Vous avez appris à configurer votre environnement de développement, créer un modèle de données, configurer Entity Framework Core, et créer des points de terminaison d'API. Vous pouvez maintenant utiliser ces connaissances pour créer des API Web plus complexes et répondre à des besoins spécifiques.

N'hésitez pas à explorer les fonctionnalités supplémentaires d'ASP.NET Core et d'Entity Framework Core pour améliorer vos applications.