Použite webové API pre kontrolu Power Apps

Web API Power Apps checker poskytuje mechanizmus na vykonávanie statických analytických kontrol prispôsobení a rozšírení platformy Microsoft Dataverse. Je k dispozícii pre tvorcov a vývojárov na realizáciu bohatých štatistických kontrol svojich riešení v porovnaní so súborom pravidiel osvedčených postupov na rýchlu identifikáciu problematických vzorcov. Služba poskytuje logiku pre funkciu solution checker vo tvorcovi Power Apps portal a je súčasťou automatizácie pre aplikácie zaslané do Marketplace. Priama interakcia so službou týmto spôsobom umožňuje analýzu riešení, ktoré sú súčasťou lokálnych (všetky podporované verzie) a online prostredí.

Informácie o používaní služby kontroly z kódu PowerShell nájdete v časti Práca s riešeniami pomocou PowerShellu .

Poznámka

  • Použitie kontrolóra Power Apps nezaručuje, že import riešenia bude úspešný. Kontroly statickej analýzy vykonané voči riešeniu nepoznajú nakonfigurovaný stav cieľového prostredia a úspešnosť importu môže závisieť od iných riešení alebo konfigurácií v prostredí.

Alternatívne prístupy

Pred prečítaním podrobností o tom, ako interagovať s webovými API na najnižšej úrovni, zvážte použitie nášho modulu PowerShell s názvom Microsoft.Checker.PowerShell.PowerApps Je to plne podporovaný nástroj, ktorý je dostupný v PowerShell Gallery. Súčasné obmedzenie je, že vyžaduje Windows PowerShell. Ak nie je možné splniť túto požiadavku, najlepším prístupom je priama interakcia s API.

Začíname

Je dôležité poznamenať, že analýza riešenia môže viesť k zdĺhavému procesu. Zvyčajne to môže trvať šesťdesiat (60) sekúnd až viac ako päť (5) minút v závislosti od rôznych faktorov, ako je počet, veľkosť a zložitosť prispôsobení a kódu. Priebeh analýzy je viacstupňový a asynchrónny a počína začatím analytickej úlohy s použitím stavového rozhrania API, ktoré sa používa na dotazovanie dokončenia úlohy. Príklad postupu pre analýzu je nasledujúci:

  1. Získajte OAuth token
  2. Nahranie volania (pre každý súbor súčasne)
  3. Analýza volania (iniciuje úlohu analýzy)
  4. Stav volania do skončenia (opakovanie s prestávkou medzi volaniami, kým nie je signalizovaný koniec alebo nie sú splnené prahy)
  5. Stiahnite si výsledky z poskytnutého SAS URI

Niekoľko variácií:

  • Zahrňte vyhľadávanie sady pravidiel alebo pravidiel ako predbežný krok. Bolo by však o niečo rýchlejšie odovzdať nakonfigurované alebo pevne kódované ID sady pravidiel. Odporúča sa používať sadu pravidiel, ktorá vyhovuje vašim potrebám.
  • Môžete sa rozhodnúť nepoužiť mechanizmus odovzdávania (obmedzenia nájdete v odovzdávaní).

Musíte určiť nasledujúce požiadavky:

Dokumentáciu k jednotlivým API nájdete v nasledujúcich článkoch:

Získať zoznam sád pravidiel
Získať zoznam pravidiel
Nahrať súbor
Analýza vyvolania
Skontrolujte stav analýzy

Určenie geografie

Keď interagujete so službou Power Apps checker, súbory sú dočasne uložené v Azure spolu s generovanými reportmi. Použitím geografického rozhrania API môžete určiť, kde budú dáta uložené. Žiadosti o geografický koncový bod sa smerujú do regionálnej inštancie na základe najlepšieho výkonu (latencia pre žiadateľa). Len čo požiadavka vstúpi do inštancie regionálnej služby, všetko spracovanie a trvalé údaje zostanú v konkrétnom regióne. Niektoré odpovede API vracajú adresy URL regionálnych inštancií pre následné požiadavky po smerovaní analytickej úlohy do konkrétneho regiónu. V každej geografickej oblasti môže byť v danom čase nasadená iná verzia služby. Použitie rôznych verzií služieb je spôsobené viacstupňovým procesom bezpečného nasadenia, ktorý zabezpečuje plnú kompatibilitu verzií. Rovnaká geografická poloha by sa teda mala použiť pre každé volanie API v životnom cykle analýzy a môže tak znížiť celkový čas vykonania, pretože údaje nemusia cestovať veľmi ďaleko po kábli. Dostupné sú nasledujúce geografie:

Azure datacenter Meno Zemepis Základné URI
Verejné Ukážka Spojené štáty unitedstatesfirstrelease.api.advisor.powerapps.com
Verejné Produkčné Spojené štáty unitedstates.api.advisor.powerapps.com
Verejné Produkčné Europe europe.api.advisor.powerapps.com
Verejné Produkčné Ázia asia.api.advisor.powerapps.com
Verejné Produkčné Austrália australia.api.advisor.powerapps.com
Verejné Produkčné Japonsko japan.api.advisor.powerapps.com
Verejné Produkčné India india.api.advisor.powerapps.com
Verejné Produkčné Kanada canada.api.advisor.powerapps.com
Verejné Produkčné Južná Amerika southamerica.api.advisor.powerapps.com
Verejné Produkčné Spojené kráľovstvo unitedkingdom.api.advisor.powerapps.com
Verejné Produkčné Francúzsko france.api.advisor.powerapps.com
Verejné Produkčné Nemecko germany.api.advisor.powerapps.com
Verejné Produkčné Spojené arabské emiráty unitedarabemirates.api.advisor.powerapps.com
Verejné Produkčné Švajčiarsko switzerland.api.advisor.powerapps.com
Verejné Produkčné Južná Afrika southafrica.api.advisor.powerapps.com
Verejné Produkčné Kórejská republika korea.api.advisor.powerapps.com
Verejné Produkčné Nórsko norway.api.advisor.powerapps.com
Verejné Produkčné Singapur singapore.api.advisor.powerapps.com
Verejné Produkčné Švédsko sweden.api.advisor.powerapps.com
Verejné Produkčné Poľsko poland.api.advisor.powerapps.com
Verejné Produkčné Taliansko italy.api.advisor.powerapps.com
Verejné Produkčné Vláda USA gov.api.advisor.powerapps.us
Verejné Produkčné Vláda USA L4 high.api.advisor.powerapps.us
Verejné Produkčné Vláda USA L5 (DOD) mil.api.advisor.appsplatform.us
Verejné Produkčné Čína cez 21Vianet china.api.advisor.powerapps.cn

Poznámka

Môžete sa rozhodnúť použiť geografiu ukážky na skoršie včlenenie najnovších funkcií a zmien. Všimnite si však, že náhľad používa len United States Azure regióny.

Versioning

Hoci to nie je povinné, odporúča sa zahrnúť parameter reťazca dotazu api-version s požadovanou verziou rozhrania API. Aktuálna verzia API je 2.0 pre sady pravidiel a pravidlá a 1.0 pre všetky ostatné požiadavky. Napríklad nasledujúca sada pravidiel je HTTP požiadavka, ktorá určuje použitie verzie API 2.0:

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

Ak nie je poskytnutý, štandardne sa použije najnovšia verzia rozhrania API. Odporúča sa použiť explicitné číslo verzie, pretože číslo verzie sa zvýši, ak sa zavedú závažné zmeny. Ak je v žiadosti uvedené číslo verzie, zachová sa podpora spätnej kompatibility v neskorších (číselne) verziách.

Sady pravidiel a pravidlá

Kontrola Power Apps vyžaduje pri spustení zoznam pravidiel. Tieto pravidlá môžu byť stanovené vo forme individuálnych pravidiel alebo zoskupení pravidiel, ktoré sa označujú ako sada pravidiel. Sada pravidiel je pohodlný spôsob, ako určiť skupinu pravidiel namiesto toho, aby ste museli každé pravidlo špecifikovať jednotlivo. Napríklad funkcia kontroly riešení používa sadu pravidiel s názvom Kontrola riešenia. Keď sa pridajú alebo odstránia nové pravidlá, služba tieto zmeny automaticky zahrnie bez toho, aby bola potrebná akákoľvek zmena zo strany spotrebiteľskej aplikácie. Ak požadujete, aby sa zoznam pravidiel nezmenil automaticky, ako je opísané vyššie, potom je možné pravidlá špecifikovať individuálne. Pravidlá môžu mať jedno alebo viac pravidiel bez obmedzenia. Pravidlo môže byť v žiadnej alebo viacerých sadách pravidiel. Zoznam všetkých sád pravidiel môžete získať tak, že zavoláte API nasledovne: [Geographical URL]/api/ruleset. Tento koncový bod teraz vyžaduje overenie.

Sada pravidiel kontroly riešenia

Sada pravidiel pre kontrolu riešení obsahuje súbor efektívnych pravidiel, ktoré majú obmedzené šance na falošné poplachy. Ak spúšťate analýzu s existujúcim riešením, odporúča sa začať s touto sadou pravidiel. Túto sadu pravidiel používa funkcia kontroly riešení. ...

Pravidlá certifikácie na trhu

Pri publikovaní žiadostí na Marketplace musíte mať svoju žiadosť certifikovanú. Žiadosti publikované na Marketplace musia spĺňať vysoký štandard kvality. Certifikačná sada pravidiel Marketplace obsahuje pravidlá, ktoré sú súčasťou sady pravidiel solution checkera, plus ďalšie pravidlá, ktoré zabezpečujú, že v obchode budú publikované iba aplikácie vysokej kvality. Niektoré pravidlá certifikácie Marketplace sú náchylnejšie na falošné poplachy a môžu vyžadovať väčšiu pozornosť na ich vyriešenie.

Nájdite ID svojho nájomníka

ID vášho nájomníka je potrebné na interakciu s API, ktoré vyžadujú token. Prečítajte si tento článok, kde nájdete podrobnosti o tom, ako získať ID nájomníka. Príkazy PowerShell môžete tiež použiť na získanie ID nájomníka. Nasledujúci príklad aplikuje cmdlety v module AzureAD. ...

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

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

ID nájomníka je hodnota vlastností ObjectId, ktorá sa vracia z Get-AzureADTenantDetail. Môžete ju vidieť aj po prihlásení pomocou rutiny cmdlet Connect-AzureAD vo výstupe rutiny cmdlet. V tomto prípade bude mať názov TenantId.

Autentifikácia a autorizácia

Dotazovanie pravidiel a sád pravidiel nevyžaduje token, ale všetky ostatné rozhrania API ho vyžadujú. OAuth Rozhrania API podporujú zisťovanie autorizácie volaním ktoréhokoľvek z rozhraní API, ktoré vyžadujú token. Odpoveďou je neoprávnený stavový kód HTTP 401 s hlavičkou WWW-Authenticate, autorizačným URI a ID zdroja. Mali by ste uviesť aj svoje ID nájomníka v hlavičke x-ms-tenant-id. Viac informácií nájdete v Power Apps Checker autentifikácia a autorizácia pre viac informácií. Nasleduje príklad hlavičky odpovede vrátenej z požiadavky API:

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

Keď budete mať tieto informácie, môžete sa rozhodnúť použiť Microsoft Authentication Library (MSAL) alebo iný mechanizmus na získanie tokenu. Nasleduje príklad, ako to možno dosiahnuť pomocou C# a knižnice MSAL .NET:

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

Úplný funkčný kód nájdete v ukážke rýchleho štartu webového rozhrania API. ...

Po získaní tokenu sa odporúča poskytnúť rovnaký token aj pri nasledujúcich volaniach v životnom cykle požiadavky. Viac žiadostí si však môže z bezpečnostných dôvodov vyžiadať získanie nového tokenu.

Bezpečnosť prenosu

Pre zabezpečenie najlepšieho šifrovania vo svojej triede služba kontroly podporuje iba komunikáciu pomocou protokolu TLS (Transport Layer Security) 1.2 a novšieho. Pre usmernenie .NET najlepších postupov v oblasti TLS pozrite Transport Layer Security (TLS) osvedčené postupy s .NET Framework.

Formát zostavy

Výsledkom analýzy riešenia je súbor zip obsahujúci jednu alebo viac zostáv v štandardizovanom formáte JSON. Formát zostavy je založený na výsledkoch statickej analýzy označovaných ako Static Analysis Results Interchange Format (SARIF). K dispozícii sú nástroje na prezeranie a interakciu s dokumentmi SARIF. Pozrite si tieto webové stránky pre viac informácií. Služba používa druhú verziu štandardu OASIS. ...

Pozrite tiež

Získať zoznam sád pravidiel
Získať zoznam pravidiel
Nahrať súbor
Analýza vyvolania
Skontrolujte stav analýzy