Comment développer une API Web en C# avec ASP.NET CORE. Exemple concret.

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ต.ค. 2024

ความคิดเห็น • 53

  • @meziane
    @meziane  3 ปีที่แล้ว +1

    Inscrivez-vous à ma Newsletter pour recevoir mes astuces et conseils sur la programmation en C#/.NET ...
    Voici le formulaire d'inscription : bit.ly/3hB5nUk

  • @SamSam-sb2xo
    @SamSam-sb2xo 3 ปีที่แล้ว +3

    Vraiment top, clair et très compréhensible. Tu penses faire une vidéo pour sécurisé l'API ?

    • @meziane
      @meziane  3 ปีที่แล้ว

      Merci ! Je ferai une vidéo, je ne sais pas encore quand

  • @BrahmiYassine
    @BrahmiYassine ปีที่แล้ว +1

    Merci

    • @meziane
      @meziane  ปีที่แล้ว +1

      Avec plaisir, merci pour ton message

  • @theachyller69
    @theachyller69 3 ปีที่แล้ว

    Super vidéo !!!! mais comme l'a dit rogeiro, ce serait vraiment bien de refaire ça avec plusieurs tables

    • @meziane
      @meziane  3 ปีที่แล้ว +2

      Merci !!! J'ai fait une vidéo sur Entity Framework Core avec trois tables: Many to Many et One to Many: th-cam.com/video/TZBW5-_-MfU/w-d-xo.html
      J'ai bien noté votre suggestion.

    • @theachyller69
      @theachyller69 3 ปีที่แล้ว

      @@meziane Merci ;)

  • @ivoire-dev7925
    @ivoire-dev7925 ปีที่แล้ว

    C'est Top

  • @aniskadri140
    @aniskadri140 10 หลายเดือนก่อน

    Azul

    • @meziane
      @meziane  9 หลายเดือนก่อน

      Azul :)

  • @daffnehandy4212
    @daffnehandy4212 ปีที่แล้ว

    bonjour Mr IEnumerable Get () veut signifier quoi ? c'est juste une énumération (IEnumerable) ou bien il y'a une autre explication a cela ?

    • @meziane
      @meziane  ปีที่แล้ว

      Bonjour,
      IEnumerable est une interface, les collections (Liste etc.) l’implémentent, ça nous donne la possibilité de les parcourir (peuvent être énumérées) avec par exemple la boucle “foreach”.
      La méthode IEnumerable Get () peut retourner n’importe quelle collection qui implémente IEnumerable, par exemple List ...
      Pour plus d’informations:
      learn.microsoft.com/fr-fr/dotnet/api/system.collections.ienumerable?view=net-7.0
      Bien à toi,

  • @mikegodfrinne931
    @mikegodfrinne931 2 ปีที่แล้ว

    Bonjour, je suis blioqué au moment de la création de la base de données. Je n'ai pas le fichier Startup ? Merci

    • @meziane
      @meziane  2 ปีที่แล้ว +1

      Bonjour,
      Il n'y a pas de fichier Startup.cs dans la version .NET 6, désormais la configuration se trouve dans le fichier Program.cs.
      J'ai ajouté une vidéo avec la version .NET 6 sur Entity Framework, j'ai utilisé le fichier Program.cs pour ajouter la configuration, tu peux la consulter : th-cam.com/video/alYmXFCCOmM/w-d-xo.htmlm29s
      Bien à toi,

  • @lyndalynda8257
    @lyndalynda8257 2 ปีที่แล้ว

    Bonjour merci beaucoup pour vos explications, svp j'ai suivi toutes les étapes mais un pb lors de la génération de la base de données, je reçois toujours cette erreur: ClientConnectionId:00000000-0000-0000-0000-000000000000
    Error Number:-1,State:0,Class:20
    A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SNI_PN11, error: 26 - Error Locating Server/Instance Specified)

    • @meziane
      @meziane  2 ปีที่แล้ว

      Bonjour,
      Merci pour ton commentaire.
      Conernant ta question : Entity Framework ne trouve pas ton serveur de base de données.As-tu installé SQL Server Express ? Si oui, est-ce que tu arrives à te connecter en utilisant SQL Server Management Studio.
      Si ce n'est pas le cas, tu peux installer SQL Server Express et SQL Management Studio en utilisant ces liens :
      - www.microsoft.com/fr-fr/sql-server/sql-server-downloads (tu peux choisir Express)
      - docs.microsoft.com/fr-fr/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
      Si le problème persiste, pourrais-tu poster ta connectionString ?
      Bien à toi,

  • @boumadanidjelloulbistechnology
    @boumadanidjelloulbistechnology 4 หลายเดือนก่อน

    bonjour;
    pour créer un api asp .net core et le relier avec une base de données sql server existante, es que la migration est obligatoire?

    • @meziane
      @meziane  4 หลายเดือนก่อน +1

      Bonjour, on peut opter pour l'approche database first, on génère les classes modèle en utilisant la base de données existante. Tu peux apporter des modifications dans la db si nécessaire et regénérer le modèle. J'ai fait une vidéo qui explique comment le faire. Voicil le lien: th-cam.com/video/alYmXFCCOmM/w-d-xo.html

    • @boumadanidjelloulbistechnology
      @boumadanidjelloulbistechnology 4 หลายเดือนก่อน

      @@meziane merci

  • @SamSam-sb2xo
    @SamSam-sb2xo 3 ปีที่แล้ว

    Autre chose, si mon API doit avoir du code Metier, est-ce que je créais un nouveau dossier que j'appel Metier ? Depuis mon contrôleur j'appel les fonctions de ma Class Metier correspondant au traitement ? Quel est la bonne pratique pour faire ça ? Ex : le client envoie des données qui doivent être calculer, ensuite le résultat je dois le save dans SQL puis retourner que tout c'est bien passé.

    • @meziane
      @meziane  3 ปีที่แล้ว

      Si c'est un petit projet, tu peux créer comme tu dis un dossier qui contient ta classe ou plusieurs pour faire le traitement.Ensuite, tu ajoutes dans le contrôleur une propriété (de type : ta nouvelle classe) et tu l'injectes via le constructeur. Voici un tuto qui explique comment utiliser l'injection des dépendances : www.tutorialsteacher.com/core/dependency-injection-in-aspnet-core
      Par contre, si c'est un projet complexe, il faut réfléchir à l'architecture au préalable. Généralement, on ajoute plusieurs projets à la même solution dans Visual Studio. Exemple de projets à ajouter dans la solution :
      - Api web : Contrôleurs ...
      - Une couche Modèle de type Class Library (bibliothèque de classes) qui contient les classes qui seront utilisées pour générer la base de données si on opte pour une stratégie Code-First avec Entity Framework.
      - Une Couche Métier (Class Library) pour effectuer les traitements, accéder à d'autres web services et backends etc.
      Le projet Api web utilisera les autres projets (couches) comme dépendances.
      Bien à toi,

  • @christianbrowser1002
    @christianbrowser1002 10 หลายเดือนก่อน

    Très Bien !!
    Mais tout ce que je ne comprends pas, la base des données devrait quand même existait bien avant !
    Possible de refaire avec un BD qui existe au préalable ??

    • @meziane
      @meziane  10 หลายเดือนก่อน +1

      Bonjour,
      Il y a deux approches: code first ou database first. Dans cet exemple, la base de données n'existe pas, mais on peut biensur avoir une base de données ensuite on génère nos classes J'ai fait une vidéo qui explique l'approche database first, ce n'est pas une API mais on peut utiliser la même approche dans une API en .NET. Voici le lien: th-cam.com/video/alYmXFCCOmM/w-d-xo.html
      Merci pour ton message

    • @christianbrowser1002
      @christianbrowser1002 10 หลายเดือนก่อน

      Merci infiniment 🙏🙏🙏

    • @meziane
      @meziane  10 หลายเดือนก่อน

      Avec plaisir !

  • @Peacewalker73
    @Peacewalker73 2 ปีที่แล้ว

    Bonjour Monsieur, j'ai cherché des heures mais je n'arrive pas a comprendre comment ajouter des elements dans la table d'association depuis un controleur (j'ai tjr une erreur du type : la classe n'a pas de key (j'ai creé une classe SchoolCourse), car effectivement cette table n'a pas d'identiifiant propre). Bref, comment faire pour ajouter une assoication dans la table d'association depuis un controleur. Merci bq de votre temps

    • @meziane
      @meziane  2 ปีที่แล้ว

      Bonjour,
      Pour ajouter des éléments dans la table d'association depuis un contrôleur, il faut tout simplement les ajouter dans la liste d'un objet puis le sauvegarder. Par exemple, si on a une relation many-to-many entre un cours et un étudiant, on peut créer un étudiant, puis mettre dans la liste des cours de de cet étudiant un nouveau cours. Quand on sauvegarde cet étudiant, Entity Framework va ajouter un élément dans la table d'association qui contiendra la clé de l'étudiant et la clé du cours.
      On n'ajoute pas directement dans la table d'association, c'est Entity Framework qui génère la requête. On a pas besoin d'une classe d'association.
      J'ai montré un exemple de many-to-many dans cette vidéo: th-cam.com/video/-tZLsJEEqeU/w-d-xo.html
      Bien à toi,

    • @Peacewalker73
      @Peacewalker73 2 ปีที่แล้ว

      @@meziane merci bq de votre réponse, c etait effectivement sur cette video que j avais pensé poster mon commentaire. Bonne soirée

    • @meziane
      @meziane  2 ปีที่แล้ว

      @@Peacewalker73 avec plaisir. Merci, bonne soirée

    • @Peacewalker73
      @Peacewalker73 2 ปีที่แล้ว

      @@meziane je vous dérange une derniere fois car j'ai essayé toute la matiné en vain d'ajouter un élement à la liste (la structure de mon code est identique a celle de votre video MVCSchool ou Student = User et Course = Projet. Je suis dans le ProjetController et voila à quoi j'ai aboutis (sans succes) :
      [HttpPost]
      [ValidateAntiForgeryToken]
      public async Task AddProjectToUserr()
      {
      var User1 = _context.Users.FirstOrDefault(u => u.Id == 2);
      // Je suis sur que User1 existe
      _context.Projets.Select(x => x.Users).ToList().Add(User1);
      // Je n'arrive pas à comprendre comment ici j'ajoute un élements à la collection d'Users contenu dans le DbSet Projet
      return View();
      }
      Si j'ai un exemple qui marche je pourrais continuer sans probleme mais je n'arrive pas à trouver sur un internet cet exemple. Je vous remercie encore de votre aide.

    • @meziane
      @meziane  2 ปีที่แล้ว +1

      @@Peacewalker73 Salut, j'ai bien lu ton message. Je te répondrai demain.
      Bien à toi,

  • @abderrazzakbounoir9895
    @abderrazzakbounoir9895 ปีที่แล้ว

    salam Mr Meziane
    j utilise powerbuilder mais la sté appeon le proprietaire de powerbuilder a commencé à intégrer c# j aimerais vous contacter

    • @meziane
      @meziane  ปีที่แล้ว

      Salam Abderrazzak, tu t'es inscrit à ma newsletter mais ton email n'est pas valide. Peux-tu ajouter une adresse mail, tu receveras un email après ton inscription et tu peux me contacter en répondant directement.
      Voici le lien: bit.ly/3hB5nUk
      Bien à toi,
      Meziane

  • @rogeiromambuku4695
    @rogeiromambuku4695 3 ปีที่แล้ว

    bonjour mezziane,c'est bien comme demo avec une seule table, pourquoi pas avec multiples table telles que, courss, professur...;;

    • @meziane
      @meziane  3 ปีที่แล้ว +2

      Bonjour Rogeiro, merci pour la remarque. J'ai mis l'accent sur la partie Api Web en simplifiant la couche modèle. Je ferai une vidéo, je ne sais pas encore quand, sur Entity Framework Core avec plusieurs tables avec différentes relations: One to Many, Many to Many ...

  • @duboismatthieu715
    @duboismatthieu715 2 ปีที่แล้ว

    hello possible d'avoir la méthode put (update) ?

    • @meziane
      @meziane  2 ปีที่แล้ว +2

      Hello, voici le code de la méthode put :
      [HttpPut("{id}")]
      public async Task UpdateCourse(int id, Course newCourse)
      {
      if (!id.Equals(newCourse.Id))
      {
      return BadRequest("IDs are different");
      }
      var courseToUpdate = await _context.Courses.FindAsync(id);
      if (courseToUpdate == null)
      {
      return NotFound($"Course with Id = {id} not found");
      }
      _context.Entry(courseToUpdate).State = EntityState.Detached;
      _context.Courses.Update(newCourse);
      await _context.SaveChangesAsync();
      return NoContent();
      }
      Pour tester au niveau de Postman, on met l'Id dans l'url et puis le cours à mettre à jour en tant que raw body de type JSON:
      Exemples:
      url: localhost:44389/api/Courses/1
      Raw body :
      {
      "id": 1,
      "name": "SQL"
      }

  • @axwelllllll
    @axwelllllll 3 ปีที่แล้ว

    bonjour avais vous un contact svp

    • @meziane
      @meziane  3 ปีที่แล้ว

      Bonjour Axel, Je viens de vous envoyer un email.

  • @daffnehandy4212
    @daffnehandy4212 ปีที่แล้ว

    Bonjour Monsieur j'ai aimée votre vidéo mais je n'ai pas trop compris

    • @meziane
      @meziane  ปีที่แล้ว

      Bonjour,
      Merci pour ton message.
      J'ai fait quelques vidéos pour débutant si c'est ton cas.
      Voici:
      - Introduction à la programmation en C# et .NET
      th-cam.com/video/5nvM1aUrZW0/w-d-xo.html
      - Programmation Orientée Objet en C# th-cam.com/video/3e70lP0KZ_Q/w-d-xo.html
      Je ferai d'autres vidéos qui abordent les bases.
      Je reste à ta disposition si tu as des questions.
      Meziane

    • @daffnehandy4212
      @daffnehandy4212 ปีที่แล้ว

      @@meziane merci

    • @daffnehandy4212
      @daffnehandy4212 ปีที่แล้ว

      J’y reviendrai si j’ai des questions

    • @meziane
      @meziane  ปีที่แล้ว

      @@daffnehandy4212 avec plaisir !

    • @daffnehandy4212
      @daffnehandy4212 ปีที่แล้ว

      @@meziane Bonjour Mr ,ma part de base de donnée ne se crée pas dans le SGBD (SQL server)!! comme le votre ,mais tout mes GRUD fonctionne

  • @gringo2900
    @gringo2900 ปีที่แล้ว

    On vous a jamais appris à creer la DAO avant les Controllers ? apparemment vous etes encore a la ramasse en France!