.NET eksempler

I denne artikel:


For at tilgå SmartWeb 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. 

  • Skriv URL'en til WSDL-filen i feltet "address", og klik på knappen "Go". URL'en er: https://api.smart-web.dk/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. Koden skal se sådan ud: 
    
    $Client->Solution_SetEncoding(array ('Encoding' => 'UTF-8'));
    
    
  • 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.smart-web.dk/service.wsdl Se venligst afsnit 2 eller https://api.smart-web.dk/doc/ for en detaljeret dokumentation af de forskellige tilgængelige metodekald, idet de er det samme for PHP og .NET.