# Cleient ddb .NET

Mae'r Cleient Microservices .NET DDB yn caniatáu mynediad i bob gweithrediad DDB mewn ieithoedd fel C#. Gellir cyrchu pob microservice gan ddefnyddio pecyn NuGet gwahanol.

Nodyn ar gyfer defnyddwyr allanol - Mae llawer o'r dolenni yn yr adran ganlynol yn cyfeirio at gymwysiadau mewnol. Siaradwch â'ch tîm prosiect i gael cefnogaeth.

# Rhagofynion

# Gosodiadau

# nuget.config

Mae angen ffeil nuget.config i osod y pecynnau NuGet. Creu’r ffeil wrth ymyl eich ffeil .csproj neu .sln gyda’r cynnwys canlynol:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="ddb" value="https://pkgs.dev.azure.com/ovearup/_packaging/ddb/nuget/v3/index.json" />
  </packageSources>
</configuration>

# Pecynnau

Darperir pob microservice gan becyn NuGet gwahanol. Gellir gosod pecynnau gyda'r gorchymyn:

dotnet add package <package name> --interactive

Y pecynnau sydd ar gael yw:

# Chyfluniadau

Bydd angen Cofrestru Ap Azure Ad (opens new window) ar gyfer y cleient sy'n cyrchu'r API. Bydd angen i chi ffurfweddu sgopiau ac URI ailgyfeirio ar gyfer eich cais.

# Sgopiau

Mae'r sgopiau wedi'u ffurfweddu ar y dudalen API permissions. Gellir ychwanegu'r rhain trwy Add a permission, yna dewis APIS my organization uses, ac yn olaf dewis DigitalDesignBriefAPI. Y caniatâd sy'n ofynnol yw user_impersonation. Ar ôl i chi ychwanegu'r rhain, bydd angen eu cymeradwyo gyda Grant admin consent for Arup y bydd angen eu mewngofnodi mewn tocyn gwasanaeth.

# Ailgyfeirio uri

Bydd angen i chi hefyd ffurfweddu URI ailgyfeirio ar gyfer eich cais. Gwneir hyn ar y dudalen Authentication. Ar gyfer cymwysiadau bwrdd gwaith, dewiswch Add a platform, yna Mobile and desktop applications, ac yn olaf dewis https://login.microsoftonline.com/common/oauth2/nativeclient. Ar gyfer cymwysiadau eraill, dilynwch y cyfarwyddiadau ar y dudalen Authentication.

# Nefnydd

Mae'r gwrthrych DDBClient yn ffurfweddu'r dilysiad a'r amgylchedd ar gyfer pob microservice. Yna gellir gofyn am bob microservice wedi'i osod gan ddefnyddio'r dulliau estyn ar y cleient. Darperir gweithrediad y caffaeliad symbolaidd ar gyfer cymwysiadau bwrdd gwaith. Bydd angen i geisiadau eraill, fel gweinyddwyr, weithredu eu caffaeliad tocyn eu hunain trwy weithredu'r rhyngwyneb ITokenAcquisition. Yna gellir pasio hwn i'r DDBClient neu DDBClientFactory yn yr adeiladwr.

string clientId = "<client id>";
var ddbClient = new DDBClient(Environment.Sandbox, clientId);

var commentsService = ddbClient.GetCommentsService();

foreach (var comment in (await commentsService.GetCommentsAsync()).Comments)
{
    Console.WriteLine(comment.Content);
}

# Ffatri cleientiaid

Darperir dosbarth DDBClientFactory hefyd, sy'n caniatáu creu gwrthrychau DDBClient ar gyfer amgylchedd penodol, tra bod y ffatri yn trin dilysu. Gall hyn fod yn ddefnyddiol mewn senarios lle defnyddir chwistrelliad dibyniaeth.

# Thudaleniad

Mae swyddogaethau cynorthwyydd yn cael eu cyflenwi ar gyfer gweithio gyda phwyntiau terfyn wedi'u tudalen. Mae'r rhain i'w cael yn y dosbarth statig Helpers.

Mae'r swyddogaethau cynorthwyydd pasio yn symleiddio gan alw pwynt terfyn dro ar ôl tro i ddychwelyd rhestr o ganlyniadau wedi'u pasio. Llofnod enghreifftiol yw:

IAsyncEnumerable<O> Unpaginate<T, O>(RequestFunction<T> requestFunction, Func<T, IEnumerable<O>> getInner, Func<T, string> getAfter)

Mae requestFunction yn swyddogaeth sy'n pasio'r paramedr after i'r swyddogaeth DDB, gan gael ei phasio i ddechrau.

getInner Yn cael y casgliad mewnol o'r ymateb canlyniad.

getAfter Yn cael y cyrchwr after o'r ymateb canlyniad.

Er enghraifft:

var results = Helpers.Unpaginate(
  after => parameterService.GetAllParametersAsync(after: after, project_id: projectId),
  t => t.Parameters,
  t => t?.Paging?.Cursors?.After
);

# Helpers.Unpaginate

Mae hwn ar gael o .NET Craidd 3.1 ac argymhellir eich bod yn defnyddio hwn pan fydd ar gael, gan y bydd yn diog yn gwneud pob cais gan ei fod wedi'i ailadrodd, yn hytrach na gorfod adfer yr holl ganlyniadau i'r cof. Mae'n dychwelyd IAsyncEnumerable, a chyda'r System.linq.async (opens new window) Gellir gweithredu pecyn wedi'i osod gyda dulliau LINQ cyfarwydd.

# Helpers.UnpaginateAll

Mae hyn yn dychwelyd rhestr sengl o wrthrychau trwy alw'r dull cais a ddarperir dro ar ôl tro nes bod yr holl ganlyniadau wedi'u casglu. Yn gyffredinol, dim ond os nad yw Helpers.Unpaginate ar gael y dylid defnyddio hyn. Darperir gorlwytho sy'n cymryd swyddogaeth trawsnewid ychwanegol, gan ganiatáu i ganlyniadau gael eu trawsnewid wrth iddynt ddod i mewn cyn cael eu hychwanegu at y rhestr.

# Helpers.GetPaginatedFirstOrDefault

Mae hyn yn dychwelyd canlyniad sengl o ddiweddbwynt wedi'i dudalen. Mae'n cymryd swyddogaeth ragfynegol ac yn dychwelyd yr ymateb cyntaf sy'n cyd -fynd â'r rhagfynegiad.

Last Updated: 3/8/2023 15:20:28