Barvna shema: Temna
Trenutno dejavna stran: start » sl » Dokumentacija » Integracija podatkov in dostop do podatkov » WKL Database Gateway » Odjemalec .NET Wkl.Data.Gateway.Client – pregled » Referenčni priročnik » Programski vmesnik

Programski vmesnik

Velja za odjemalca 0.2.1 s paketom specifikacije vmesnika Wkl.Data.Gateway.Contracts 0.6.0. Tipi odjemalca so v imenskem prostoru Wkl.Data.Gateway.Client, tipi specifikacije vmesnika v Wkl.Data.Gateway.Contracts.

Registracija

MetodaUčinek
services.AddGatewayClient(IConfiguration section)Poveže konfiguracijo s podanim razdelkom, običajno configuration.GetSection(GatewayClientOptions.SectionName)
services.AddGatewayClient(Action<GatewayClientOptions> configure)Enako, z nastavitvami iz kode

Obe registrirata IGatewayClient (izvedba GatewayHttpClient, ena na aplikacijo), preverjanje nastavitev ob zagonu in dva poimenovana odjemalca HTTP za branje in klicanje, vsakega s svojo časovno omejitvijo. Če želite privzeti vir korelacije zamenjati, pred klicem registrirajte lasten IGatewayCorrelationSource; privzeti vir uporabi identifikator sledi (TraceId) trenutne Activity v obliki W3C, pri Activity v starejši hierarhični obliki njen Id, brez Activity pa nov GUID.

IGatewayClient

MetodaNamenRezultat
ReadAsync<TRow>(GatewayQuery query, IReadOnlyDictionary<string, string>? arguments = null, CancellationToken ct = default)Prebere okno iz tabele, pogleda ali funkcije. arguments samo pri funkciji: ime in vrednost vsakega parametra kot besediloGatewayPage<TRow>
InvokeAsync<TRow>(GatewayRoutineRequest request, CancellationToken ct = default)Pokliče proceduroGatewayRoutineResult<TRow>

Vsaka metoda pošlje natanko eno zahtevo. Če ne uspe, vrže GatewayRequestException (glejte Zahteva ne uspe z `GatewayRequestException`); preklic prek CancellationToken klicatelja prispe kot OperationCanceledException.

Tip vrstice TRow. Vrstice se berejo s System.Text.Json. Imena stolpcev se brez upoštevanja velikih in malih črk primerjajo z obliko snake_case imen lastnosti (ZadnjaSprememba bere zadnja_sprememba). Stolpec, katerega ime se od tega razlikuje, potrebuje [JsonPropertyName("…")] z imenom, ki ga uporablja podatkovna zbirka. Z JsonElement kot TRow se vsaka vrstica prebere nespremenjena.

Kaj se bere

GatewayResource

new GatewayResource(string databaseAlias, GatewayResourceKind kind, string name)

ParameterPomen
databaseAliasIme vira podatkov v prehodu, ne ime podatkovne zbirke
kindTable, View, Function ali Procedure
nameobjekt ali shema.objekt

GatewayQuery

new GatewayQuery(resource, select = null, filter = null, orderBy = null, skip = 0, top = null, includeTotalCount = false)

ParameterPomen
resourceTabela, pogled ali funkcija. Procedura se zavrne (ArgumentException)
selectStolpci, ki se preberejo. Prazno: vsi, ki jih prehod ponuja
filterPogoj, glejte spodaj
orderByZaporedje GatewaySortField(string field, GatewaySortDirection direction) z Ascending ali Descending
skipVrstice, ki se preskočijo. Ne sme biti negativno
topŽelena velikost okna, večja od nič. Prehod jo omeji na svojo zgornjo mejo; brez navedbe uporabi svojo privzeto vrednost
includeTotalCountPrehod naj dodatno prešteje, koliko vrstic filter zadene skupaj

Filtri (GatewayFilter)

VrstaUstvarjanjePomen
Primerjavanew GatewayFilter.Comparison(field, op, value)op je Equal, NotEqual, LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual, Contains, StartsWith ali EndsWith. Tri iskanja po besedilu zahtevajo niz. value ne sme biti null – manjkajoče vrednosti preverja preverjanje prazne vrednosti
Primerjava poljnew GatewayFilter.FieldComparison(field, op, otherField)Primerja dva stolpca iste vrstice; samo enakost in vrstni red
Preverjanje prazne vrednostinew GatewayFilter.NullCheck(field, expectNull)true: stolpec je prazen; false: stolpec ima vrednost
Pripadnost množicinew GatewayFilter.Membership(field, values)Stolpec je enak eni od vrednosti; od 1 do 20.000 vrednosti (MaxValues)
Povezavanew GatewayFilter.Logical(GatewayLogicalConnective.And ali Or, operands)Vsaj en operand
Zanikanjenew GatewayFilter.Negation(operand)Obrne pogoj

Filter je lahko ugnezden največ deset ravni globoko (GatewayFilter.MaxDepth).

Vrednosti. Prenašajo se bool, string, char, cela števila do 64 bitov, decimal, double, float, DateTime (brez časovnega pasu), DateTimeOffset, DateOnly, TimeOnly in Guid. Vsak drug tip – naštevanja, zaporedja bajtov, lastni razredi – se zavrne z MalformedRequest, še preden zahteva zapusti računalnik. Naštevanje podajte izrecno kot število ali kot ime, odvisno od tega, kaj hrani stolpec.

Identifikatorji

Imena aliasov, objektov, stolpcev in parametrov se začnejo s črko ali _, sledijo jim črke, števke, _, @, # ali $; največ 128 znakov na del. Neveljavno ime vrže ArgumentException že ob ustvarjanju objekta, neveljavno ime argumenta pa ob klicu ReadAsync. Prehod ohrani nespremenjene samo črke, števke in _, vse druge znake kodira, tudi @, # in $. Če ime stolpca v podatkovni zbirki vsebuje take znake (na primer Vrednost$, Teža (kg) ali A&B), ga v select, filter in orderBy navedite v kodirani obliki, na primer Vrednost_x0024_ ali A_x0026_B; pravilo je opisano v dokumentaciji podatkovnega prehoda, „Časovne točke, števila in imena“. Odgovor vsebuje ime, ki ga uporablja podatkovna zbirka.

Kaj se kliče

GatewayRoutineRequest

new GatewayRoutineRequest(GatewayResource resource, IReadOnlyDictionary<string, object?>? arguments = null)

resource mora biti procedura, sicer ArgumentException. Argumenti se pošljejo kot JSON v telesu; dovoljeni so null in vrednosti iz razdelka „Vrednosti“.

Kaj se vrne

GatewayPage<TRow>

LastnostPomen
RowsPrebrane vrstice
RequestedWindowSizeVelikost okna, s katero je prehod bral
TotalCountSkupno število zadetkov; null, če ni nihče štel – ni isto kot 0
HasMorePotentiallytrue, če je okno polno; tedaj je morda še nadaljevanje, naslednje okno pa preberete s skip

GatewayRoutineResult<TRow>

LastnostPomen
RowsVrstice prvega niza rezultatov procedure
AffectedRowCountSpremenjene vrstice, če procedura ni vrnila niza rezultatov; sicer null
ReturnedRowstrue, če je procedura vrnila niz rezultatov

GatewayRequestException

V Problem vsebuje GatewayProblem z Kind, Message, CorrelationId, EngineMessages, HttpStatusCode in IsTransient. Kaj pomeni posamezna vrsta in kako jo obravnavati, je opisano v Zahteva ne uspe z `GatewayRequestException`.

Sorodne teme

sl/wiki/data-conectivity/database-gateway/client/reference/api.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille