Koristite web API za provjeru Power Apps-a

Web API za provjeru Power Apps-a pruža mehanizam za pokretanje statičke analize protiv prilagodbi i proširenja Microsoft Dataverse platforme. Dostupan je autorima i razvojnim inženjerima za izvršavanje opsežnih statičkih, analitičkih provjera na njihovim rješenjima u odnosu na niz najboljih pravila iz prakse, a u svrhu utvrđivanja problematičnih obrazaca. Usluga pruža logiku za značajku solution checker u Power Apps proizvođaču portal i uključena je kao dio automatizacije za aplikacije podnesene Marketplace. Izravna interakcija s uslugom na ovaj način omogućuje analizu rješenja koja su uključena u lokalna (sve podržane verzije) i mrežna okruženja.

Informacije o korištenju usluge provjere iz PowerShell koda potražite u članku Rad s rješenjima pomoću PowerShell-a.

Napomena

  • Korištenje Power Apps provjere ne jamči da će uvoz rješenja biti uspješan. Provjere statičke analize obavljene na rješenju ne znaju konfigurirano stanje odredišnog okruženja, a uspjeh uvoza može ovisiti o drugim rješenjima ili konfiguracijama u okruženju.

Alternativni pristupi

Prije nego što pročitate detalje o tome kako komunicirati na najnižoj razini s web-API-jima, razmislite o korištenju našeg PowerShell modula, Microsoft.PowerApps. Checker.PowerShell, umjesto toga. To je potpuno podržan alat dostupan u PowerShell Gallery. Trenutno ograničenje je da zahtijeva Windows PowerShell. Ako ne možete ispuniti ovaj zahtjev, tada je izravna interakcija s API-jima najbolji pristup.

Početak rada

Važno je napomenuti da analiza rješenja može rezultirati dugotrajnim procesom. Obično može potrajati šezdeset (60) sekundi do više od pet (5) minuta, ovisno o različitim čimbenicima, kao što su broj, veličina i složenost prilagodbi i koda. Tok analize ima više koraka i asinkron je počevši od pokretanja posla analize s API-jem statusa koji se koristi za upit za dovršavanje posla. Primjer toka za analizu je sljedeći:

  1. Nabavite OAuth token
  2. Prijenos poziva (za svaku datoteku paralelno)
  3. Analiza poziva (pokreće posao analize)
  4. Status poziva do završetka (kružno pozivanje s pauzom između poziva dok se ne signalizira kraj ili se dosegnu ograničenja)
  5. Preuzimanje rezultata iz ponuđenog URI-ja SAS-a

Nekoliko varijacija je:

  • Uključite pretraživanje skupa pravila ili pravila kao pred-korak. Međutim, bit će malo brže predati u konfiguriranom ili ID-u skupa pravila ovisnom o programskom kodu. Preporučuje se upotreba skupa pravila koji odgovara vašim potrebama.
  • Možete se odlučiti da ne koristite mehanizam za prijenos (ograničenja potražite u prijenosu).

Morate odrediti sljedeće zahtjeve:

Pogledajte sljedeće članke za dokumentaciju o pojedinačnim API-jima:

Dohvaćanje popisa skupova pravila
Dohvaćanje popisa pravila
Prijenos datoteke
Analiza pozivanja
Provjera statusa analize

Određivanje geografije

Kada komunicirate s Power Apps uslugom provjere, datoteke se privremeno pohranjuju u Azure zajedno s generiranim izvještajima. Korištenjem API-ja za specifičnu geografiju, možete kontrolirati gdje se podaci pohranjuju. Zahtjevi na zemljopisnu krajnju točku preusmjeravaju se na regionalnu instancu na temelju najbolje izvedbe (latencija prema podnositelju zahtjeva). Jednom kada zahtjev uđe u regionalnu instancu usluge, svi podaci o obradi i trajni podaci ostaju u toj određenoj regiji. Određeni odgovori API-ja vraćaju URL-ove regionalnih instanci za sljedeće zahtjeve nakon što se posao analize usmjeri u određenu regiju. Svaka zemljopisna lokacija može imati drugačiju verziju usluge koja je implementirana u bilo kojem trenutku. Korištenje različitih verzija usluga posljedica je višestupanjskog sigurnog procesa implementacije, koji osigurava potpunu kompatibilnost verzije. Dakle, isto zemljopisno područje treba se koristiti za svaki API poziv u životnom ciklusu analize i može smanjiti sveukupno vrijeme izvršavanja jer podaci možda neće morati putovati tako daleko preko žice. Slijede dostupne geografije:

Azure datacenter Ime/naziv Geografija Osnovni URI
Javno Pretpregled Sjedinjene Američke Države unitedstatesfirstrelease.api.advisor.powerapps.com
Javno Produkcija Sjedinjene Američke Države unitedstates.api.advisor.powerapps.com
Javno Produkcija Europa europe.api.advisor.powerapps.com
Javno Produkcija Azija asia.api.advisor.powerapps.com
Javno Produkcija Australija australia.api.advisor.powerapps.com
Javno Produkcija Japan japan.api.advisor.powerapps.com
Javno Produkcija Indija india.api.advisor.powerapps.com
Javno Produkcija Kanada canada.api.advisor.powerapps.com
Javno Produkcija Južna Amerika southamerica.api.advisor.powerapps.com
Javno Produkcija Velika Britanija unitedkingdom.api.advisor.powerapps.com
Javno Produkcija Francuska france.api.advisor.powerapps.com
Javno Produkcija Njemačka germany.api.advisor.powerapps.com
Javno Produkcija Ujedinjeni Arapski Emirati unitedarabemirates.api.advisor.powerapps.com
Javno Produkcija Švicarska switzerland.api.advisor.powerapps.com
Javno Produkcija Južna Afrika southafrica.api.advisor.powerapps.com
Javno Produkcija Južna Koreja korea.api.advisor.powerapps.com
Javno Produkcija Norveška norway.api.advisor.powerapps.com
Javno Produkcija Singapur singapore.api.advisor.powerapps.com
Javno Produkcija Švedska sweden.api.advisor.powerapps.com
Javno Produkcija Poljska poland.api.advisor.powerapps.com
Javno Produkcija Italija italy.api.advisor.powerapps.com
Javno Produkcija za američke državne ustanove gov.api.advisor.powerapps.us
Javno Produkcija Vlada Sjedinjenih Američkih Država L4 high.api.advisor.powerapps.us
Javno Produkcija Vlada Sjedinjenih Američkih Država L5 (DOD) mil.api.advisor.appsplatform.us
Javno Produkcija Upravlja Kina putem 21Vianeta china.api.advisor.powerapps.cn

Napomena

Možete se odlučiti na upotrebu pretpregleda geografije kako biste ranije uključili najnovije značajke i promjene. Međutim, imajte na umu da pregled koristi samo United States Azure regije.

Određivanje verzije

Iako nije potrebno, preporučuje se uključiti parametar niza upita api-version sa željenom verzijom API-ja. Trenutna verzija API-ja je 2.0 za skupove pravila i pravila i 1.0 za sve ostale zahtjeve. Na primjer, sljedeći skup pravila je HTTP zahtjev koji određuje korištenje verzije API-ja 2.0:

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

Ako nije navedeno, prema zadanim postavkama koristi se najnovija verzija API-ja. Preporučuje se korištenje eksplicitnog broja verzije jer se verzija povećava ako se uvedu prijelomne promjene. Ako je broj verzije naveden u zahtjevu, u novijim (brojčano većim) verzijama zadržat će se podrška za kompatibilnost s prijašnjim verzijama.

Skupovi pravila i pravila

Power Apps provjera zahtijeva popis pravila prilikom pokretanja. Ta se pravila mogu pružiti u obliku pojedinačnih pravila ili grupa pravila koje se nazivaju skup pravila. Skup pravila je zgodan način za određivanje grupe pravila umjesto da se svako pravilo pojedinačno određuje. Na primjer, značajka alata za provjeru rješenja koristi skup pravila s nazivom Alat za provjeru rješenja. Kako se dodaju ili uklanjaju nova pravila, usluga automatski uključuje te promjene bez potrebe za bilo kakvim promjenama od strane aplikacije koja koristi. Ako želite da se popis pravila ne mijenja automatski na prethodno opisani način, pravila se mogu odrediti pojedinačno. Skupovi pravila mogu imati jedno ili više pravila bez ograničenja. Pravilo ne mora biti u skupu pravila ili može biti u više skupova. Popis svih skupova pravila možete dobiti pozivanjem API-ja na sljedeći način: [Geographical URL]/api/ruleset. Ova krajnja točka sada zahtijeva provjeru autentičnosti.

Skup pravila alata za provjeru rješenja

Skup pravila alata za provjeru rješenja sadrži skup djelotvornih pravila u kojima su šanse za pogrešno otkrivanje ograničene. Ako pokrećete analizu postojećeg rješenja, preporučuje se da započnete s ovim skupom pravila. Ovaj skup pravila koristi značajka provjererješenja.

Skup pravila za certifikaciju tržišta

Prilikom objavljivanja prijava na Marketplaceu, morate certificirati svoju prijavu. Prijave objavljene na Marketplaceu moraju ispunjavati visoke standarde kvalitete. Skup pravila za certifikaciju Marketplacea sadrži pravila koja su dio skupa pravila za provjeru rješenja, kao i druga pravila koja osiguravaju da se na trgovini objavljuju samo aplikacije visoke kvalitete. Neka pravila o certifikaciji Marketplacea podložnija su lažnim pozitivnim rezultatima i mogu zahtijevati više pažnje za njihovo rješavanje.

Pronalaženje ID-a svog klijenta

ID vašeg klijenta potreban je za interakciju s API-jima koji zahtijevaju token. Pogledajte ovaj članak za pojedinosti o tome kako dobiti ID klijenta. Također možete koristiti naredbe okvira PowerShell za dohvaćanje ID-a klijenta. Sljedeći primjer primjenjuje cmdlete u modulu AzureAD.

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

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

ID klijenta je vrijednost svojstva ObjectId dobivena iz Get-AzureADTenantDetail. Također ga možete vidjeti nakon prijave pomoću cmdleta Connect-AzureAD u rezultatu cmdleta. U ovom će slučaju biti imenovan TenantId.

Provjera autentičnosti i autorizacija

Upit za pravila i skupove pravila ne zahtijeva OAuth token, ali svi ostali API-ji zahtijevaju token. API-ji podržavaju otkrivanje autorizacije pozivanjem bilo kojeg API-ja za koji je potreban token. Odgovor je neovlašteni HTTP statusni kod 401 sa zaglavljem WWW-Authenticate, URI-jem autorizacije i ID-om resursa. Trebate također navesti ID svog klijenta u zaglavlju x-ms-tenant-id. Za više informacija pogledajte Power Apps Provjera autentifikacije i autorizacije. Slijedi primjer zaglavlja odgovora vraćenog iz API zahtjeva:

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

Kada imate te informacije, možete odabrati korištenje Microsoft Authentication Library (MSAL) ili nekog drugog mehanizma za dobivanje tokena. Slijedi primjer kako se to može učiniti 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();

Potpuni radni kod potražite u primjeru brzog pokretanja web-API-ja.

Nakon što nabavite token, savjetuje se da isti token navedete za sljedeće pozive u životnom ciklusu zahtjeva. Međutim, više zahtjeva može zahtijevati stjecanje novog tokena iz sigurnosnih razloga.

Sigurnost prijenosa

Za najbolju enkripciju u klasi, usluga provjere podržava samo komunikaciju koristeći Transport Layer Security (TLS) 1.2 i novije verzije. Za smjernice o .NET najboljim praksama vezanim uz TLS, pogledajte Transport Layer Security (TLS)) najbolje prakse s .NET Framework.

Format izvješća

Rezultat analize rješenja je zip datoteka koja sadrži jedno ili više izvješća u standardiziranom JSON formatu. Format izvješća temelji se na rezultatima statičke analize koji se nazivaju Format razmjene rezultata statičke analize (SARIF). Dostupni su alati za pregled i interakciju sa SARIF dokumentima. Pogledajte ovo web-mjesto za pojedinosti. Usluga koristi drugu verziju OASIS standarda.

Vidi također

Dohvaćanje popisa skupova pravila
Dohvaćanje popisa pravila
Prijenos datoteke
Analiza pozivanja
Provjera statusa analize