.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.