IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Discussion :

Recuperer des Auteurs via une Application MVC et une application Console ConsommerAPI


Sujet :

Services Web

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    959
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 959
    Points : 141
    Points
    141
    Par défaut Recuperer des Auteurs via une Application MVC et une application Console ConsommerAPI
    Bonjour,

    J'ai crée un projet Asp.MVC nomme e_bibliotheque(bibliotheque de classes)

    La classe AuteurController contient une methode AfficherAuteurs, qui, pour s'executer, fait appel à un une instance serviceAuteur de la classe ServiceAuteur, d'une application console ConsommerAPI

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
     
    using ConsommerAPI;
    using e_Bibliotheque.Models;
    using Entite;
    using System;
    using System.Threading.Tasks;
    using System.Web.Mvc;
     
     
     
     
     
     
    namespace e_Bibliotheque.Controllers
    {
        [RoutePrefix("api/Auteur")]
        public class AuteurController : Controller
        {
            [Route("")]
            // GET: Auteur
     
     
            [HttpGet]
            public async Task<ActionResult>AfficherAuteurs()
            {
                VM_ListAuteurs modelAuteurs = new VM_ListAuteurs();
                modelAuteurs.ListAuteurs = null; 
                try
                {
     
     
                    ServiceAuteur serviceAuteur = new ServiceAuteur();
     
    //les modèles récupèrent les resultats recupérés + la vue les affiche
                    modelAuteurs.ListAuteurs = await serviceAuteur.recupLesAuteursAsync();
     
                    return View(modelAuteurs);
     
                }
     
                catch(Exception ex)
                {
                    Console.WriteLine("une erreur s'est produite" + ex.Message);
     
                    return View(modelAuteurs);
                }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    namespace ConsommerAPI
    {
        public class ServiceAuteur
        {
     
     
     public async Task<IEnumerable<Auteur>> recupLesAuteursAsync()
     {
     
         HttpClient client = new HttpClient();
         client.BaseAddress = new Uri("https://localhost:59543/api/");
         var urlAPI = client.BaseAddress;
         var objetReponse = await client.GetAsync($"{urlAPI}Auteur");
     
     
         if (objetReponse.StatusCode == System.Net.HttpStatusCode.OK)
         {
             var objetContenu = objetReponse.Content;
             var stringContenu = await objetContenu.ReadAsStringAsync();
     
             var listAuteur = JsonConvert.DeserializeObject<IEnumerable<Auteur>>(stringContenu);
     
             return listAuteur;
     
         }
         else if (objetReponse.StatusCode == System.Net.HttpStatusCode.NotFound)
         {
             return null;
         }
         else
         {
     
             var objetContenu = objetReponse.Content;
             var stringContenu = await objetContenu.ReadAsStringAsync();
     
             throw new Exception("Un problème avec API : status = {objetReponse.StatusCode}, contenu : {stringContenu}");
         }
     
     
     }
    La méthode GetAsync permet-elle de recuperer les données stockées uniquement sur un serveur ou eventuellement dans un IEnumerable<Auteur>.

    Si elle ne permet de recuperer que des infos sur un serveur, il faudrait donc que consommerAPI soit en communication avec le ServeurAPI.(cela fait 5 ans que j'ai commencé ce projet que je reprends aujourd'hui)
    Est ce bien cela ?

    Autre question, en haut de la classe AuteurController il y a [RoutePrefix("api/Auteur")].

    Ceci signifie que mon controller est de la forme api/nomcontroller

    Or ce n'est pas ce qui est dans le fichier RouteConfig.cs.

    Je n'ai donc pas forcément besoin de mentionner [RoutePrefix("api/Auteur")] en haut de la classe.Merci beaucoup de confirmer.

    Merci beaucoup de bien vouloir m'aider à resoudre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    namespace e_Bibliotheque
    {
        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
     
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Accueil", action = "Accueil", id = UrlParameter.Optional }
                );
            }
        }
    }
    Pour l'instant j'ai cette erreur d'execution(voir fichier joint)

    Merci beaucoup de votre aide encore pour que j'y voie plus clair depuis tout ce temps.

    Bien cordialement.

    new_wave
    Images attachées Images attachées  
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    959
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 959
    Points : 141
    Points
    141
    Par défaut
    Bonjour,
    j'ai déplacé mon message dans la partie propre aux appli MVC.

    J'ai également apporté quelques modifications à mon message car certains points n'avaient plus lieu d'être

    Bien cordialement.

    new_wave
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/06/2020, 16h51
  2. Récupération des erreurs d'une appli console win32
    Par Gouyon dans le forum Visual C++
    Réponses: 8
    Dernier message: 28/11/2014, 09h53
  3. [EJB3] Récupérer des EJB via une Factory
    Par Dr_GreenThumb dans le forum Java EE
    Réponses: 1
    Dernier message: 30/07/2013, 09h39
  4. [XL-2000] Récupérer des informations via une page web XML
    Par peofofo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/04/2009, 15h46
  5. récupération des données via une liste déroulante
    Par rahan_dave dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo