.NET eksempler

I denne artikel:


    For at tilgå shoppens API fra et .NET miljø, skal man have indlæst en proxy klient. Proxyen kan autogenereres af Visual Studio ved at følge denne guide. 

     

    • Højreklik på References i dit projekt og vælg "Add Service Reference...":

    • Skriv URL'en til WSDL-filen i feltet "Address" og klik på knappen "Go". URL'en er:
      https://api.hostedshop.io/service.wsdl

    • Du vil nu kunne se klassen "WebServicePort" i venstre kolonne og alle de tilgængelige metoder til API'et i højre side: 

    • Under "Namespace" skal du nu give referencen et navn. I dette tilfælde kalder vi den "WebService". Klik OK.
    • Åbn nu filen "App.Config" i dit projekt i Visual Studio og find den binding, der hedder "WebServiceBinding". Her skal du tilføje attributten allowCookies="true" for at tillade, at forbindelsen til api'et må blive gemt i en session.
    • Brug følgende eksempel udskriver herefter en liste af produkter og deres varianter for en løsning i .NET-konsollen. I eksemplet ligger vores nye service reference under navnet "ConsoleApplication1.WebService". Du kan med fordel anvende en specifik API-bruger til at logge ind, men hvis du ikke har en sådan, så kan du bruge løsningens generelle logininformation.
      
      using System;
      using ConsoleApplication1.WebService; /* Vores projekt hedder "ConsoleApplication1", men du skal her bruge dit eget default namespace */
      
      class Program
      {
          static void Main(string[] args)
          {
              /* Skab et nyt proxy-objekt */
              WebService Client = new WebServicePortClient();
      
              /* Opret forbindelse til en løsning */
              Client.Solution_Connect("brugernavn", "password");
      
              /* Sæt sprog for løsningen */
              Client.Solution_SetLanguage("DK");
      
              /* Sæt ønskede felter for Produkt-objektet */
              Client.Product_SetFields("Id,Title,Variants");
      
              /* Sæt ønskede felter for Produktvariant-objektet */
              Client.Product_SetVariantFields("Id");
      
              /* Hent Alle Produkter */
              Product[] result = Client.Product_GetAll();
      
              /* Loop over Produkter */
              foreach (Product product in result)
              {
                  /* Udskriv produktets Title */
                  Console.WriteLine("Produkt: " + product.Title);
      
                  if (product.Variants.Length > 0)
                  {
                      Console.Write("Varianter:");
      
                      /* Loop over produktets varianter */
                      foreach (ProductVariant variant in product.Variants)
                      {
                          
                          /* Hent variantens TypeValues */
                          ProductVariantTypeValue[] variantTypeValues = Client.Product_GetVariantTypeValues(variant.Id);
      
                          /* Loop over variantens TypeValues og udskriv deres Title */
                          foreach (var variantTypeValue in Client.Product_GetVariantTypeValues(variant.Id))
                          {
                              Console.Write(" " + variantTypeValue.Title);
                          }
                          Console.WriteLine("");
                      }
                  }
              }
          }
      }
      

    Som det ses ovenfor står proxy selv for wrapping af input- og outputargumenter. Proxy er genereret ud fra https://api.hostedshop.io/service.wsdl. Se venligst afsnit 2 eller https://api.hostedshop.io/doc/ for en detaljeret dokumentation af de forskellige tilgængelige metodekald, idet de er det samme for PHP og .NET.