Vytvoření klientské aplikace OData v4 (C#)
Mike Wasson
V předchozím kurzu jste vytvořili základní službu OData, která podporuje operace CRUD. Teď vytvoříme klienta pro službu.
Spusťte novou instanci sady Visual Studio a vytvořte nový projekt konzolové aplikace. V dialogovém okně Nový projekt vyberte Nainstalované>šablony>Visual C#>Plocha Windows a vyberte šablonu Konzolová aplikace . Projekt pojmenujte ProductsApp.
Poznámka
Konzolovou aplikaci můžete také přidat do stejného řešení sady Visual Studio, které obsahuje službu OData.
Instalace generátoru klientských kódů OData
V nabídce Nástroje vyberte Rozšíření a Aktualizace. Vyberte Online>galerie sady Visual Studio. Do vyhledávacího pole vyhledejte "Generátor klientských kódů OData". Kliknutím na Stáhnout nainstalujte VSIX. Může se zobrazit výzva k restartování sady Visual Studio.
Místní spuštění služby OData
Spusťte projekt ProductService ze sady Visual Studio. Visual Studio ve výchozím nastavení spustí prohlížeč do kořenového adresáře aplikace. Poznamenejte si identifikátor URI. budete ho potřebovat v dalším kroku. Nechte aplikaci spuštěnou.
Poznámka
Pokud umístíte oba projekty do stejného řešení, nezapomeňte spustit projekt ProductService bez ladění. V dalším kroku budete muset při úpravách projektu konzolové aplikace ponechat službu spuštěnou.
Vygenerování proxy služby
Proxy služby je třída .NET, která definuje metody pro přístup ke službě OData. Proxy překládá volání metod na požadavky HTTP. Třídu proxy vytvoříte spuštěním šablony T4.
Klikněte pravým tlačítkem na projekt. Vyberte Přidat>novou položku.
V dialogovém okně Přidat novou položku vyberte Visual C# Items>Code>OData Client. Pojmenujte šablonu "ProductClient.tt". Klikněte na Přidat a projděte si upozornění zabezpečení.
V tomto okamžiku se zobrazí chyba, kterou můžete ignorovat. Visual Studio šablonu automaticky spustí, ale nejdřív potřebuje nějaká nastavení konfigurace.
Otevřete soubor ProductClient.odata.config. V elementu Parameter
vložte identifikátor URI z projektu ProductService (předchozí krok). Příklad:
<Parameter Name="MetadataDocumentUri" Value="http://localhost:61635/" />
Spusťte šablonu znovu. V Průzkumník řešení klikněte pravým tlačítkem na soubor ProductClient.tt a vyberte Spustit vlastní nástroj.
Šablona vytvoří soubor kódu s názvem ProductClient.cs, který definuje proxy server. Pokud při vývoji aplikace změníte koncový bod OData, spusťte šablonu znovu a aktualizujte proxy server.
Použití proxy služby k volání služby OData
Otevřete soubor Program.cs a nahraďte často používaný kód následujícím kódem.
using System;
namespace ProductsApp
{
class Program
{
// Get an entire entity set.
static void ListAllProducts(Default.Container container)
{
foreach (var p in container.Products)
{
Console.WriteLine("{0} {1} {2}", p.Name, p.Price, p.Category);
}
}
static void AddProduct(Default.Container container, ProductService.Models.Product product)
{
container.AddToProducts(product);
var serviceResponse = container.SaveChanges();
foreach (var operationResponse in serviceResponse)
{
Console.WriteLine("Response: {0}", operationResponse.StatusCode);
}
}
static void Main(string[] args)
{
// TODO: Replace with your local URI.
string serviceUri = "http://localhost:port/";
var container = new Default.Container(new Uri(serviceUri));
var product = new ProductService.Models.Product()
{
Name = "Yo-yo",
Category = "Toys",
Price = 4.95M
};
AddProduct(container, product);
ListAllProducts(container);
}
}
}
Hodnotu serviceUri nahraďte identifikátorem URI služby z předchozí verze.
// TODO: Replace with your local URI.
string serviceUri = "http://localhost:port/";
Když aplikaci spustíte, měl by mít výstup následující:
Response: 201
Yo-yo 4.95 Toys