Deli putem


Korišćenje Web API-ja za Power Apps kontrolor

Power Apps provera Web API-ja nudi mehanizam za pokretanje provera statičke analize u odnosu na prilagođavanja i proširenja na Microsoft Dataverse platformi. Autorima i programerima je dostupno obavljanje obogaćenih provera statičke analize njihovih rešenja u odnosu na skup pravila najboljih praksi da bi brzo identifikovali problematične šablone. Usluga pruža logiku za funkciju provere rešenja na portalu za Power Apps autore i uključena je kao deo automatizacije za aplikacije prosleđene u AppSource. Direktna interakcija sa uslugom na ovaj način omogućava analizu rešenja koja su uključena u lokalni (sve podržane verzije) i okruženja na mreži.

Za informacije o korišćenju usluge provere iz PowerShell koda pogledajte članak Rad sa rešenjima pomoću programa PowerShell.

Belešku

  • Upotreba Power Apps kontrolora ne garantuje da će uvoz rešenja biti uspešan. Provere statičke analize izvršene prema rešenju ne znaju kako je konfigurisano stanje odredišnog okruženja, a uspeh uvoza može zavisiti od drugih rešenja ili konfiguracija u okruženju.

Alternativni pristupi

Pre čitanja kroz detalje o interakciji na najnižem nivou sa Veb API-jem, razmislite o korišćenju našeg PowerShell modula, Microsoft.PowerApps. Checker.PowerShell, umesto toga. To je potpuno podržan alat koji je dostupan u PowerShell galeriji. Trenutno ograničenje je da zahteva Windows PowerShell. Ako ne možete da ispunite ovaj zahtev, onda je direktna interakcija sa API-jem najbolji pristup.

Prvi koraci

Važno je napomenuti da analiza rešenja može rezultirati dugotrajnim procesom. Obično može da potraje šezdeset (60) sekundi naviše od pet (5) minuta u zavisnosti od različitih faktora, kao što su broj, veličina i složenost prilagođavanja i koda. Tok analize je višestepeni i asinhron, počev od započinjanja posla analize pomoću API-ja statusa koji se koristi za upit za dovršavanje posla. Sledi primer toka za analizu:

  1. Pribavljanje OAuth tokena
  2. Otpremanje poziva (za svaku datoteku paralelno)
  3. Analiza poziva (pokreće posao analize)
  4. Status poziva do završetka (petlja sa pauzom između poziva dok se ne signalizira kraj ili se ne dosegnu pragovi)
  5. Preuzimanje rezultata sa obezbeđenog SAS URI-ja

Nekoliko varijacija su:

  • Uključite pronalaženje skupa pravila ili pravila kao predkorak. Međutim, bilo bi malo brže da prosledite ID konfigurisanog ili direktno kodiranog skupa pravila. Preporučujemo vam da koristite skup pravila koja zadovoljavaju vaše potrebe.
  • Možete da odlučite da ne koristite mehanizam za otpremanje (pogledajte ograničenja za prenos).

Potrebno je da odredite sledeće zahteve:

Pogledajte sledeće članke za dokumentaciju o pojedinačnim API-jem:

Preuzimanje liste skupova pravila
Preuzimanje liste pravila
Otpremanje datoteke
Pozivanje analize
Provera statusa analize

Određivanje geografije

Kada komunicirate sa uslugom Power Apps proveravača, datoteke se privremeno skladište u Azure zajedno sa generisanim izveštajima. Korišćenjem API-ja specifičnog za geografsku oblast, možete kontrolisati gde se podaci čuvaju. Zahtevi za geografsku krajnju tačku usmeravaju se na regionalnu instancu na osnovu najboljih performansi (kašnjenje do podnosioca zahteva). Kada zahtev uđe u instancu regionalne usluge, svi podaci o obradi i trajni podaci ostaju u tom određenom regionu. Određeni API odgovori vraćaju URL adrese regionalne instance za naredne zahteve kada se zadatak analize usmeri u određeni region. Svaka geografija može imati različitu verziju usluge koja je raspoređena u bilo kom trenutku u vremenu. Korišćenje različitih verzija usluge je rezultat višestepenog procesa bezbedne primene, koji obezbeđuje kompatibilnost kompletne verzije. Dakle, ista geografija bi trebalo da se koristi za svaki API poziv u životnom ciklusu analize i može smanjiti ukupno vreme izvršavanja, jer podaci možda neće morati da putuju toliko daleko preko žice. Slede dostupne geografske oblasti:

Azure centar podataka +Ime Geografska oblast Osnovni URI
Javno Verzija za pregled SAD unitedstatesfirstrelease.api.advisor.powerapps.com
Javno Proizvodnja SAD unitedstates.api.advisor.powerapps.com
Javno Proizvodnja Evropa europe.api.advisor.powerapps.com
Javno Proizvodnja Azija asia.api.advisor.powerapps.com
Javno Proizvodnja Australija australia.api.advisor.powerapps.com
Javno Proizvodnja Japan japan.api.advisor.powerapps.com
Javno Proizvodnja Indija india.api.advisor.powerapps.com
Javno Proizvodnja Kanada canada.api.advisor.powerapps.com
Javno Proizvodnja Južna Amerika southamerica.api.advisor.powerapps.com
Javno Proizvodnja Ujedinjeno Kraljevstvo unitedkingdom.api.advisor.powerapps.com
Javno Proizvodnja Francuska france.api.advisor.powerapps.com
Javni Produkcija Nemačka germany.api.advisor.powerapps.com
Javni Produkcija Ujedinjeni Arapski Emirati unitedarabemirates.api.advisor.powerapps.com
Javni Produkcija Švajcarska switzerland.api.advisor.powerapps.com
Javni Produkcija Južnoafrčka Republika southafrica.api.advisor.powerapps.com
Javni Produkcija Južna Koreja korea.api.advisor.powerapps.com
Javni Produkcija Norveška norway.api.advisor.powerapps.com
Javni Produkcija Singapur singapore.api.advisor.powerapps.com
Javni Produkcija Švedska sweden.api.advisor.powerapps.com
Javni Produkcija US Government gov.api.advisor.powerapps.us
Javno Proizvodnja Državne institucije SAD L4 high.api.advisor.powerapps.us
Javno Proizvodnja Državne institucije SAD L5 (DOD) mil.api.advisor.appsplatform.us
Javno Proizvodnja Kina, upravlja 21Vianet china.api.advisor.powerapps.cn

Belešku

Možete odabrati da koristite geografsku oblast za pregled da biste ranije uključili najnovije funkcije i izmene. Međutim, imajte na umu da se za pregled koristi samo Azure region u SAD.

Kreiranje verzija

Iako nije potrebno, preporučuje se uključivanje parametra niske upita api verzije sa željenom API verzijom. Trenutna API verzija je 2.0 za pravila i pravila i 1.0 za sve ostale zahteve. Na primer, sledeći nalog pravila je HTTP zahtev koji određuje korišćenje 2.0 API verzije:

https://unitedstatesfirstrelease.api.advisor.powerapps.com/api/ruleset?api-version=2.0

Ako nije obezbeđeno, najnovija API verzija se podrazumevano koristi. Korišćenje eksplicitnog broja verzije se preporučuje kada se verzija uveća ako se uvedu prelomne promene. Ako je broj verzije naveden u zahtevu, održaće se podrška za kompatibilnost sa starijim verzijama u kasnijim (brojčano većim) verzijama.

Skupovi pravila i pravila

Power Apps kontrolor zahteva listu pravila kada se pokrene. Ta pravila se mogu navoditi u obliku pojedinačnih pravila ili grupe pravila koja se naziva skup pravila. Skup pravila je prikladan način za određivanje grupe pravila umesto da se svako pravilo pojedinačno određuje. Na primer, funkcija provere rešenja koristi skup pravila pod nazivom Provera rešenja. Kako se nova pravila dodaju ili uklanjaju, usluga automatski uključuje ove promene bez zahtevanja bilo kakve promene od strane aplikacije za konzumiranje. Ako želite da se lista pravila ne menja automatski kao što je gore opisano, onda se pravila mogu odrediti pojedinačno. Skupovi pravila mogu imati jedno ili više pravila bez ograničenja. Pravilo može biti bez skupa pravila ili u više skupova pravila. Listu svih skupova pravila možete dobiti tako što ćete pozvati API na sledeći način: [Geographical URL]/api/ruleset. Ovo krajnja tačka sada zahteva potvrdu identiteta.

Skup pravila za proveru rešenja

Skup pravila za proveru rešenja sadrži skup uticajnih pravila koja imaju ograničene šanse za lažne pozitivne rezultate. Ako pokrenete analizu u odnosu na postojeće rešenje, preporučuje se da počnete sa ovom stavkom pravila. Ovu funkciju za proveru pravila koristi funkcija za proveru rešenja.

AppSource set pravila sertifikacije

Prilikom objavljivanja aplikacija na lokaciji AppSource, morate sertifikovati aplikaciju. Aplikacije objavljene na lokaciji AppSource obavezno moraju da zadovolje visok standard kvaliteta. Sertifikacija AppSource sadrži pravila koja su deo pravila za proveru rešenja, kao i druga pravila kako bi se osiguralo objavljivanje samo visokokvalitetnih aplikacija u prodavnici. Neka pravila sertifikacije AppSource su sklonija lažnim pozitivnim stvarima i mogu zahtevati više pažnje za rešavanje.

Pronađite ID svog zakupca

ID vašeg zakupca je potreban za interakciju sa API-jima koji zahtevaju token. Pogledajte Ovaj članak za detalje o tome kako da dobijete ID zakupca. Takođe možete da koristite PowerShell komande da biste preuzeli ID zakupca. Sledeći primer primenjuje cmdlets u AzureAD modulu.

# Login to Microsoft Entra ID as your user
Connect-AzureAD

# Establish your tenant ID
$tenantId = (Get-AzureADTenantDetail).ObjectId

ID zakupca je vrednost svojstva ObjectId koju vraća funkcija Get-AzureADTenantDetail. Možete ga videti i nakon što se prijavite koristeći cmdlet komandu Connect-AzureAD na izlazu cmdlet komande. U ovom slučaju, biće imenovan. TenantId

Potvrda identiteta i autorizacija

Upit za pravila i pravila ne zahteva oznaku OAuth, ali svi ostali API-i zahtevaju simbol. API-ji podržavaju otkrivanje autorizacije pozivanjem bilo kojeg API-ja za koji je potreban token. Odgovor je neovlašćeni HTTP statusni kôd 401 sa zaglavljem WWW-Authenticate, URI autorizacijom i ID-om resursa. Takođe bi trebalo da navedete svoj ID zakupca u zaglavlju x-ms-tenant-id. Više informacija potražite Power Apps u članku Provera identiteta i ovlašćenja. Sledi primer zaglavlja odgovora vraćenog iz API zahteva:

WWW-Authenticate →Bearer authorization_uri="https://login.microsoftonline.com/0082fff7-33c5-44c9-920c-c2009943fd1e", resource_id="https://api.advisor.powerapps.com/"

Kada dobijete ove informacije, možete odabrati da koristite Microsoft biblioteku za potvrdu identiteta (MSAL) ili neki drugi mehanizam za pribavljanje simbola. Sledi primer kako se to može uraditi pomoću C# i MSAL .NET biblioteke :

// Substitute your own environment URL here.
string resource = "https://<env-name>.api.<region>.dynamics.com";

// Example Microsoft Entra app registration.
// For your custom apps, you will need to register them with Microsoft Entra ID yourself.
// See https://docs.microsoft.com/powerapps/developer/data-platform/walkthrough-register-app-azure-active-directory
var clientId = "51f81489-12ee-4a9e-aaae-a2591f45987d";
var redirectUri = "http://localhost"; // Loopback required for the interactive login.

var authBuilder = PublicClientApplicationBuilder.Create(clientId)
    .WithAuthority(AadAuthorityAudience.AzureAdMultipleOrgs)
    .WithRedirectUri(redirectUri)
    .Build();
var scope = resource + "/.default";
string[] scopes = { scope };

AuthenticationResult tokenResult =
     await authBuilder.AcquireTokenInteractive(scopes).ExecuteAsync();

Kompletan radni kôd pogledajte u uzorku Web API QuickStart.

Kada nabavite simbol, savetuje se da istom znaku obezbedite naknadne pozive u životnom ciklusu zahteva. Međutim, više zahteva može da garantuje da se novi simbol pribavi iz bezbednosnih razloga.

Bezbednost u transportu

Za najbolje šifrovanje, usluga provere podržava komunikaciju samo pomoću usluge Transport Layer Security (TLS) 1.2 i veće. Kao uputstvo o najboljim .NET praksama u vezi sa TLS-om, pogledajte Najbolje prakse za Transport Layer Security (TLS) sa platformom .NET Framework.

Format izveštaja

Rezultat analize rešenja je ZIP datoteka koja sadrži jedan ili više izveštaja u standardizovanom JSON formatu. Format izveštaja je zasnovan na rezultatima statičke analize koja se naziva „format razmene rezultata statičke analize“ (SARIF). Na raspolaganju su vam alati za prikaz i interakciju sa SARIF dokumentima. Pogledajte ovu veb-lokaciju za detalje. Usluga koristi verziju dva standarda OASIS.

Pogledajte i ovo

Preuzimanje liste skupova pravila
Preuzimanje liste pravila
Otpremanje datoteke
Pozivanje analize
Provera statusa analize