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.