Esstra.Hit.Client 1.0.0

dotnet add package Esstra.Hit.Client --version 1.0.0
NuGet\Install-Package Esstra.Hit.Client -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Esstra.Hit.Client" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Esstra.Hit.Client --version 1.0.0
#r "nuget: Esstra.Hit.Client, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Esstra.Hit.Client as a Cake Addin
#addin nuget:?package=Esstra.Hit.Client&version=1.0.0

// Install Esstra.Hit.Client as a Cake Tool
#tool nuget:?package=Esstra.Hit.Client&version=1.0.0

HIT-Client

Diese Bibliothek stellt Funktionen zur Verfügung, die den Zugriff auf das "Herkunftssicherungs- und Informationssystem für Tiere" mittels C# vereinfacht. Der Client kommuniziert dafür mit den REST-Endpunkten des Systems. Die Dokumentation für Entwickler ist daher eine wichtige Ressource für die Nutzung dieser Bibliothek.

Verwendung

Die Klasse Esstra.Hit.Client.HitClient stellt alle Funktionen für den Zugriff auf das HIT System zur Verfügung. Idealerweise wird diese Klasse mittels Dependency Injection angefragt. Für die Dependency Injection Komponenten aus dem Microsoft Extensions Framework, liefert die Bibliothek entsprechende Funktionen mit:

var services = new ServiceCollection()
    .AddScoped<IConfiguration>(_ => configuration)
    .AddHitClient((options, configuration) =>
    {
        options.BaseAddress = HitBaseAddresses.Test;
    })
    .BuildServiceProvider();

Die Funktion AddHitClient fügt die Klasse HitClient und andere Abhängigkeiten zur Service Collection hinzu. Optional können noch bestimmte Konfigurationsparameter gesetzt werden, wie in dem Beispiel oben.

Der Client ist unterteilt in die einzelnen REST-Schnittstellen des HIT-Systems. Nachfolgend werden die einzelnen REST-Schnittstellen und ihre Implementierung in diesen Client beschrieben.

Convert

Diese REST-Schnittstelle ist nicht implementiert.

DataDict

Diese REST-Schnittstelle ist nicht implementiert.

Hit

Die Schnittstelle Hit heißt in diesem Client "Entities". Die Operationen dieser Schnittstelle stehen dementsprechend unter HitClient.Entities zur Verfügung.

GetAsync

Schnittstelle: GET /api/hit/{entity}

Die Methode GetAsync ruft Entitäten ab. TEntity repräsentiert dabei die Klasse, in welche die Ergebnisse deserialisiert werden sollen. Dafür stehen unter dem Namensraum Esstra.Hit.Client.Entities alle verfügbaren Entitäten zur Verfügung, die der Datenbank bekannt sind. Um beispielsweise einen Betriebsstammsatz abzurufen, steht die Klasse BTR_D zur Verfügung:

await client
    .GetAsync<BTR_D>(
        bnr: "090000000001", 
        pin: "Aaaa$900001", 
        condition: "BNR15;=;090000000001;ORDER;NAME");

Die Methode extrahiert den Entitätsnamen (entity) und die abzurufenden Spalten (columns), die von dem REST-Endpunkt erwartet werden, aus der Klasse selber:

[Entity("BTR_D")]
public class BTR_D
{
    [Column("ANREDE")]
    public string? ANREDE { get; set; }

    // ...
}

Das Attribut Entity enthält dabei den Namen der abzurufenden Entität und die Eigenschaften der Klasse, die mit dem Column-Attribut dekoriert sind, enthalten die Spaltennamen.

Dadurch ist es auch möglich, eigene Klassen zu erstellen. Auch die Verwendung von Inline-Funktionen ist hierdurch möglich:

[Entity("BTR_D")]
public class Betriebsstammsatz
{
    [Column("BNR15")]
    [JsonPropertyName("BNR15")]
    public decimal? Betriebsnummer { get; set; }

    [Column("$ADDRPOST(BNR15;NAME/NAME)")]
    [JsonPropertyName("NAME")]
    public string? Name { get; set; }
}

Die Klasse kann nun durch GetAsync verwendet werden:

await client
    .GetAsync<Betriebsstammsatz>(
        bnr: "090000000001", 
        pin: "Aaaa$900001", 
        condition: "BNR15;=;090000000001;ORDER;NAME");

Weitere Informationen zu der Verwendung von Entitäten sind in der Dokumentation enthalten.

PostAsync

Schnittstelle: POST /api/hit/{entity}

Um Entitäten anzulegen, wird die Methode PostAsync aufgerufen. Diese Methode nimmt eine Entität entgegen, oder eine Liste von Entitäten.

var entity = new HT_ZUTE() {
    BNR15_HTA = 90000000001,
    BNR15_HTD = 90000000002,
    HT_PASSOG = "90102",
    HT_PASSUG = "90111",
    HT_ZUTEANZ = 10,
    HT_ZUTEDAT = DateOnly.Parse("10.09.2021"),
    HT_BEGRND = "Bestellung"
}

client.Entities.PostAsync(
    values: entity, 
    bnr: "090000000001", 
    pin: "Aaaa$900001"
);

HitBatch

Diese REST-Schnittstelle ist nicht implementiert.

HitCom

Diese REST-Schnittstelle ist nicht implementiert.

HitRaw

Diese REST-Schnittstelle ist nicht implementiert.

PDF

Diese REST-Schnittstelle ist nicht implementiert.

Spezial

Diese REST-Schnittstelle ist nicht implementiert.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 99 3/25/2024