Académique Documents
Professionnel Documents
Culture Documents
Core API
Core API
07-10-2023
IAII
0.1 Prérequis
— Visual Studio 2022
— SQL Server
— Postman ou Insomnia
— SDK ASP.NET Core
Ensuite, nous voulons sélectionner .NET 7.0 dans la liste déroulante.Nous pouvons
continuer en cliquant sur le bouton Créer, et le projet commencera à s’initialiser :
G e t C o n n e c t i o n S t r i n g ( ” s q l c o n n e c t i o n ” ) ?? throw new
I n v a l i d O p e r a t i o n E x c e p t i o n ( ” Connection s t r i n g
’ b u i l d e r . S e r v i c e s . AddDbContext
A p p l i c a t i o n C o n t e x t ’ not found . ” ) ) ) ;
Avec cette commande, nous créons des fichiers de migration et nous pouvons les trouver
dans le dossier Migrations de notre projet principal.
IAII
Avec ces fichiers en place, nous pouvons appliquer la migration avec la commande :
PM> Update−Database
0.2.5 Services
Maintenant que nous avons créé notre service, ajoutons un dossier service , la classe
ProduitImpl et à l’interface IProduit
u s i n g M i c r o s o f t . EntityFrameworkCore ;
u s i n g p r o d u i t . models ;
namespace p r o d u i t . s e r v i c e
{
p u b l i c c l a s s ProduitIm pl : I P r o d u i t
{
private ApplicationContext context ;
p u b l i c ProduitImpl ( A p p l i c a t i o n C o n t e x t c o n t e x t )
{
t h i s . context = context ;
}
p u b l i c L i s t <Produit> G e t A l l P r o d u i t ( )
{
r e t u r n c o n t e x t . P r o d u i t S e t . ToList ( ) ;
}
p u b l i c P r o d u i t GetProduit ( i n t i d )
{
IAII
return c o n t e x t . P r o d u i t S e t . Find ( i d ) ;
}
var p r o d u i t 1 = c o n t e x t . P r o d u i t S e t . Find ( i d ) ;
i f ( p r o d u i t 1 != n u l l )
{
p r o d u i t 1 . Name = p r o d u i t . Name ;
produit1 . Prix = produit . Prix ;
produit1 . Description = produit . Description ;
c o n t e x t . SaveChanges ( ) ;
return 1;
}
r e t u r n −1;
}
}
}
En fin ouvrons le fichier program.cs et ajoutons cette configuration
b u i l d e r . S e r v i c e s . AddScoped<I P r o d u i t , ProduitImpl > ( ) ;
la ligne de code builder.Services.AddScoped¡IProduit, ProduitImpl¿() configure l’injec-
tion de dépendances dans notre application ASP.NET Core en enregistrant ProduitImpl
en tant qu’implémentation de l’interface IProduit. Cela signifie que lorsque vous deman-
dez IProduit dans d’autres parties de votre application (par exemple, dans un contrôleur),
ASP.NET Core fournira une instance de ProduitImpl pour vous. Cette approche permet
de découpler votre code et facilite le remplacement de l’implémentation par une autre
implémentation de IProduit à l’avenir sans avoir à changer le code qui l’utilise.
IAII
0.2.6 Controller
Maintenant que nous avons créé notre Produit Controller, ajoutons un controller API
ProduitController dans le dossier controller
namespace p r o d u i t . C o n t r o l l e r s
{
[ Route ( ” a p i / [ c o n t r o l l e r ] ” ) ]
[ ApiController ]
public c las s ProduitController : ControllerBase
{
IAII
p r i v a t e IProduit produitFacade ;
public ProduitController ( IProduit produit )
{
produitFacade = produit ;
}
[ HttpGet ]
[ Route ( ” ” ) ]
p u b l i c L i s t <Produit> G e t A l l P r o d u i t ( )
{
return produitFacade . GetAllProduit ( ) ;
}
[ HttpGet ]
[ Route ( ” i d /{ i d } ” ) ]
p u b l i c P r o d u i t GetProduit ( i n t i d )
{
r e t u r n p r o d u i t F a c a d e . GetProduit ( i d ) ;
}
[ HttpPost ]
[ Route ( ” ” ) ]
p u b l i c i n t SaveProduit ( [ FromBody ] P r o d u i t p r o d u i t )
{
return produitFacade . saveProduit ( produit ) ;
}
[ HttpPut ]
[ Route ( ” i d /{ i d } ” ) ]
p u b l i c i n t UpdateProduit ( [ FromBody ] P r o d u i t p r o d u i t , i n t i d )
{
return produitFacade . updateProduit ( produit , id ) ;
}
[ HttpDelete ]
[ Route ( ” i d /{ i d } ” ) ]
public int DeleteProduit ( int id )
{
return produitFacade . DeleteProduit ( id ) ;
}
}
}