Kopīgot, izmantojot


Power Apps pārbaudītāja tīmekļa API izmantošana

Power Apps pārbaudītāja tīmekļa API nodrošina mehānismu, lai palaistu statiskas analīzes pārbaudes Microsoft Dataverse platformas pielāgojumiem un paplašinājumiem. Veidotājiem un izstrādājiem ir iespējams veikt bagātinātas statiskās analīzes pārbaudes saviem risinājumiem salīdzinājumā ar labākās prakses noteikumu kopumu, lai ātri identificētu problemātiskus modeļus. Šis pakalpojums nodrošina loģiku risinājumu pārbaudes līdzeklim Power Apps veidotāja portālā un kā daļa no automatizācijas ir iekļauts programmās, kas iesniegtas AppSource. Tieša mijiedarbība ar pakalpojumu šādā veidā ļauj analizēt risinājumus, kas ir iekļauti lokāls (visas atbalstītās versijas) un tiešsaistes vidēs.

Informāciju par pārbaudītāja pakalpojuma izmantošanu no PowerShell koda skatiet rakstā Darbs ar risinājumiem, izmantojot PowerShell.

Piezīmes

  • Pakapojuma Power Apps pārbaudītāja izmantošana negarantē, ka risinājuma importēšana būs veiksmīga. Ar risinājumu veiktās statiskās analīzes pārbaudes nezina mērķa vides konfigurēto stāvokli, un importēšanas panākumi var būt atkarīgi no citiem risinājumiem vai konfigurācijām vidē.

Alternatīvas pieejas

Pirms lasāt informāciju par to, kā zemākajā līmenī mijiedarboties ar tīmekļa API, apsveriet iespēju izmantot mūsu PowerShell moduli, Microsoft..PowerApps Checker.PowerShell, tā vietā. Tas ir pilnībā atbalstīts rīks, kas ir pieejams PowerShell galerijā. Pašreizējais ierobežojums ir nepieciešams Windows PowerShell. Ja nevarat izpildīt šo prasību, vislabākā pieeja ir tieša mijiedarbība ar API.

Darba sākšana

Ir svarīgi ņemt vērā, ka risinājuma analīze var nodrošināt ilgstošu procesu. Parasti tas var ilgt sešdesmit (60) sekundes līdz pat piecām (5) minūtēm atkarībā no dažādiem faktoriem, piemēram, skaita, lieluma un pielāgojumu un koda sarežģītības. Analīzes plūsma ir daudzpakāpju un asinhrona, sākot ar analīzes darba sākšanu ar statusa API izmantošanu vaicājumam par darba pabeigšanu. Piemēram, plūsma analīzei ir šāda:

  1. Marķiera OAuth iegūšana
  2. Izsaukumu augšupielāde (katram failam paralēli)
  3. Izsaukuma analīze (sāk analīzes uzdevumu)
  4. Izsaukuma statuss līdz pabeigšanai (cilpošana ar pauzi starp izsaukumiem, līdz tiek signalizēts par beigām vai tiek ievēroti sliekšņi)
  5. Lejupielādēt rezultātus no nodrošinātā SAS URI

Dažas variācijas ir šādas:

  • Iekļaujiet kārtulu kopas vai kārtulu uzmeklēšanu kā iepriekšēju darbību. Tomēr būtu nedaudz ātrāk nodot konfigurēto vai cieto kodēto kārtulu kopas ID. Ieteicams lietot kārtulu kopu, kas atbilst jūsu vajadzībām.
  • Varat izvēlēties nelietot augšupielādes mehānismu (sk. ierobežojumu augšupielāde).

Jums jānosaka šādas prasības:

Skatiet šos rakstus, lai iegūtu dokumentāciju par atsevišķām API:

Kārtulu kopu saraksta izgūšana
Izgūt kārtulu sarakstu
Faila augšupielāde
Izsaukt analīzi
Analīzes statusa pārbaude

Noteikt ģeogrāfiju

Mijiedarbojoties ar pārbaudītāja Power Apps pakalpojumu, faili tiek īslaicīgi saglabāti Azure kopā ar ģenerētajām atskaitēm. Lietojot ģeogrāfijai specifisku API, ir iespējams kontrolēt, kur tiek glabāti dati. Pieprasījumi uz ģeogrāfisku galapunktu tiek maršrutēti uz reģionālo instanci, pamatojoties uz labāko veiktspēju (latentums uz pieprasītāju). Tiklīdz pieprasījums nonāk reģionālā pakalpojuma instancē, visi apstrādes un pastāvīgie dati paliek attiecīgajā apgabalā. Noteiktas API atbildes atgriež reģionālo instanču vietrāžus URL nākamajiem pieprasījumiem, tiklīdz analīzes darbs ir maršrutēts uz noteiktu reģionu. Katrā ģeogrāfiskajā atrašanās vietā jebkurā brīdī var būt izvietota atšķirīga pakalpojuma versija. Dažādu pakalpojumu versiju izmantošana ir saistīta ar daudzpakāpju drošu izvietošanas procesu, kas nodrošina pilnu versiju saderību. Tādējādi katram API izsaukumam analīzes dzīves ciklā jāizmanto viena un tā pati ģeogrāfija un var samazināties vispārējais izpildes laiks, jo datiem, iespējams, nav jāpārvietojas tik tālu pa vadam. Ir pieejamas sekojošās ģeogrāfijas:

Azure datu centrs Nosaukums/vārds, uzvārds Ģeogrāfiskais apgabals Pamata URI
Valsts sektors Priekšskatījuma Amerikas Savienotās Valstis unitedstatesfirstrelease.api.advisor.powerapps.com
Valsts sektors Ražošanas Amerikas Savienotās Valstis unitedstates.api.advisor.powerapps.com
Valsts sektors Ražošanas Eiropa europe.api.advisor.powerapps.com
Valsts sektors Ražošanas Āzija asia.api.advisor.powerapps.com
Valsts sektors Ražošanas Austrālija australia.api.advisor.powerapps.com
Valsts sektors Ražošanas Japāna japan.api.advisor.powerapps.com
Valsts sektors Ražošanas Indija india.api.advisor.powerapps.com
Valsts sektors Ražošanas Kanāda canada.api.advisor.powerapps.com
Valsts sektors Ražošanas Dienvidamerika southamerica.api.advisor.powerapps.com
Valsts sektors Ražošanas Lielbritānija unitedkingdom.api.advisor.powerapps.com
Valsts sektors Ražošanas Francija france.api.advisor.powerapps.com
Publiska Ražošanas Vācija germany.api.advisor.powerapps.com
Publiska Ražošanas Apvienotie Arābu Emirāti unitedarabemirates.api.advisor.powerapps.com
Publiska Ražošanas Šveice switzerland.api.advisor.powerapps.com
Publiska Ražošanas Dienvidāfrika southafrica.api.advisor.powerapps.com
Publiska Ražošanas Dienvidkoreja korea.api.advisor.powerapps.com
Publiska Ražošanas Norvēģija norway.api.advisor.powerapps.com
Publiska Ražošanas Singapūra singapore.api.advisor.powerapps.com
Publiska Ražošanas Zviedrija sweden.api.advisor.powerapps.com
Publiska Ražošanas ASV valsts iestādēm gov.api.advisor.powerapps.us
Valsts sektors Ražošanas ASV valdība L4 high.api.advisor.powerapps.us
Valsts sektors Ražošanas ASV valdība L5 (DOD) mil.api.advisor.appsplatform.us
Valsts sektors Ražošanas Ķīnas darbību nodrošina 21Vianet china.api.advisor.powerapps.cn

Note

Jūs varat izvēlēties lietot priekšskatījuma ģeogrāfiju, lai iekļautu jaunākos līdzekļus un iepriekš veiktās izmaiņas. Ņemiet vērā, ka priekšskatījumā tiek izmantots tikai Amerikas Savienoto valstu Azure reģioni.

Versiju izveide

Lai gan tas nav obligāti, ieteicams iekļaut API versijas vaicājuma virknes parametru vēlamajā API versijā. Pašreizējā API versija ir 2.0 kārtulu kopām un kārtulām un 1.0 visiem pārējiem pieprasījumiem. Piemēram, šī kārtulu kopa ir HTTP pieprasījums, kas norāda, ka jāizmanto 2.0 API versija:

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

Ja tā netiek nodrošināta, pēc noklusējuma tiek izmantota jaunākā API versija. Ieteicams izmantot skaidru versijas numuru, jo versija tiek palielināta, ja tiek ieviestas pārrāvuma izmaiņas. Ja versijas numurs ir norādīts pieprasījumā, atpakaļsaderības atbalsts (skaitliski lielāks) jaunākās versijās tiks saglabāts.

Kārtulu kopas un kārtulas

Power Apps pārbaudītājam ir nepieciešams kārtulu saraksts, kad tas ir palaists. Šīs kārtulas var tikt nodrošinātas atsevišķu kārtulu formā vai kārtulu grupā, ko sauc par kārtulu kopu. Kārtulu kopa ir ērts veids, kā norādīt kārtulu grupu, nevis noteikt katru kārtulu atsevišķi. Piemēram, risinājuma pārbaudes līdzeklis izmanto kārtulu kopu ar nosaukumu risinājuma pārbaudītājs. Tā kā tiek pievienotas vai noņemtas jaunas kārtulas, pakalpojums automātiski iekļauj šīs izmaiņas, neprasot nekādas izmaiņas no patērējošās lietojumprogrammas puses. Ja nepieciešams, lai kārtulu saraksts netiktu automātiski mainīts, kā aprakstīts iepriekš, tad šīs kārtulas var norādīt atsevišķi. Kārtulu kopas var būt viena vai vairākas kārtulas bez ierobežojumiem. Kārtula var būt bez vai vairākās kārtulu kopās. Varat saņemt visu kārtulu kopu sarakstu, zvanot API, kā aprakstīts tālāk [Geographical URL]/api/ruleset. Šim galapunktam tagad ir nepieciešama autentifikācija.

Risinājuma pārbaudītāja kārtulu kopa

Risinājumu pārbaudītāja kārtulu kopa satur virkni noderīgu kārtulu, kam ir ierobežotas iespējas aplami pozitīviem gadījumiem. Ja analīze tiek veikta, izmantojot esošu risinājumu, ieteicams sākt ar šo kārtulu kopu. Šo kārtulu kopu izmanto risinājumu pārbaudīšanas līdzeklis.

AppSource sertificēšanas kārtulu kopa

Publicējot pieteikumus AppSource, jums ir jāsertificē jūsu lietojumprogramma. Publicētajiem AppSource pieteikumiem ir jāatbilst augstam kvalitātes standartam. Sertifikācijas AppSource kārtulu kopā ir iekļautas kārtulas, kas ir daļa no risinājumu pārbaudītāja kārtulu kopas, kā arī citas kārtulas, lai nodrošinātu, ka veikalā tiek publicētas tikai augstas kvalitātes lietojumprogrammas. AppSource Daži sertifikācijas noteikumi ir vairāk pakļauti viltus pozitīviem rezultātiem, un to novēršanai var būt nepieciešama lielāka uzmanība.

Atrodiet sava nomnieka ID

Jūsu nomnieka ID ir nepieciešams, lai mijiedarbotos ar API, kam nepieciešams marķieris. Atsaucieties uz šo rakstu, lai iegūtu papildinformāciju par to, kā iegūt nomnieka ID. Varat arī izmantot PowerShell komandas, lai izgūtu nomnieka ID. Tālāk sniegtajā piemērā tiek lietotas cmdlet komandas AzureAD modulī.

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

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

Nomnieka ID ir ObjectId rekvizīta vērtība, kas tiek atgriezta no Get-AzureADTenantDetail. Jūs varat arī redzēt to pēc pieteikšanās, izmantojot Connect-AzureAD cmdlet cmdlet izvadē. Šajā gadījumā tas tiks nosaukts TenantId.

Autentifikācija un autorizācija

Lai veiktu vaicājumus par kārtulām un kārtulu kopām, nav OAuth nepieciešams marķieris, taču visiem pārējiem API ir nepieciešama pilnvara. API atbalsta autorizācijas atklāšana, izsaucot jebkuru API, kam nepieciešams marķieris. Atbilde ir neautorizēts HTTP statusa kods 401 ar WWW-Authenticate galveni, autorizācijas URI un resursa ID. x-ms-tenant-id galvenē ir jānorāda arī nomnieka ID . Papildinformāciju Power Apps skatiet sadaļā Pārbaudītāja autentifikācija un autorizācija . Šis ir piemērs atbilde galvenei, kas atgriezta no API pieprasījuma:

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

Kad esat ieguvis šo informāciju, varat izvēlēties izmantot autentifikācijas Microsoft bibliotēku (MSAL) vai kādu citu mehānismu, lai iegūtu pilnvaru. Šis ir piemērs, kā to var izdarīt, izmantojot C# un MSAL .NET bibliotēku:

// 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();

Pilnu darba kodu skatiet tīmekļa API QuickStart paraugā.

Kad esat ieguvis marķieri, ieteicams to pašu marķieri norādīt nākamajiem zvaniem pieprasījuma dzīves ciklā. Tomēr vairāk pieprasījumu var garantēt, ka drošības apsvērumu dēļ tiek iegūta jauna pilnvara.

Transporta drošība

Savā klasē labākajai šifrēšanai pārbaudītāja pakalpojums atbalsta tikai saziņu, izmantojot Transport slānis Security (TLS) 1.2 un jaunākas versijas. Lai iegūtu norādes par .NET labāko praksi attiecībā uz TLS, skatiet sadaļu Transporta slāņa drošības (TLS) labākās prakses ar .NET Framework.

Atskaites formāts

Risinājuma analīzes rezultāts ir zip fails, kurā ir viena vai vairākas standartizēta JSON formāta atskaites. Atskaites formāts ir balstīts uz statiskas analīzes rezultātiem, kas tiek saukti par Statiskā analīzes rezultātu apmaiņas formātu (SARIF). Pastāv rīki, kas pieejami, lai skatītu un mijiedarbotos ar SARIF dokumentiem. Papildinformāciju skatiet šajā tīmekļa vietnē. Pakalpojums izmanto OASIS standarta otroversiju.

Skatiet arī:

Kārtulu kopu saraksta izgūšana
Izgūt kārtulu sarakstu
Faila augšupielāde
Izsaukt analīzi
Analīzes statusa pārbaude