Menggunakan API web pemeriksa Power Apps

API web pemeriksa Power Apps menyediakan mekanisme untuk menjalankan pemeriksaan analisis statis terhadap kustomisasi dan ekstensi ke platform Microsoft Dataverse. Pembuat dan pengembang dapat melakukan pemeriksaan analisis statis kaya pada solusi mereka terhadap rangkaian aturan praktik terbaik untuk dengan cepat mengidentifikasi pola masalah ini. Layanan ini menyediakan logika untuk fitur pemeriksa solusi di portal pembuat Power Apps dan disertakan sebagai bagian dari otomatisasi untuk aplikasi yang dikirimkan ke Marketplace. Berinteraksi dengan layanan secara langsung dengan cara ini memungkinkan analisis solusi yang disertakan sebagai bagian dari lingkungan lokal (semua versi yang didukung) dan lingkungan online.

Untuk informasi tentang cara menggunakan layanan pemeriksa dari kode PowerShell, lihat Bekerja dengan solusi menggunakan PowerShell.

Note

  • Penggunaan pemeriksa Power Apps tidak menjamin bahwa impor solusi akan berhasil. Pemeriksaan analisis statis yang dilakukan terhadap solusi tidak mengetahui status dikonfigurasi dari lingkungan tujuan dan keberhasilan impor mungkin tergantung pada solusi atau konfigurasi lain di lingkungan.

Pendekatan alternatif

Sebelum membaca rincian tentang cara berinteraksi di tingkat terendah dengan API web, pertimbangkan untuk menggunakan modul PowerShell kami, Microsoft.PowerApps.Checker.PowerShell. Ini adalah alat yang didukung penuh yang tersedia di PowerShell Gallery. Pembatasan saat ini adalah bahwa itu memang memerlukan Windows PowerShell. Jika tidak dapat memenuhi persyaratan ini, maka berinteraksi dengan API secara langsung adalah pendekatan terbaik.

Memulai Langkah Pertama

Penting untuk dicatat bahwa analisis solusi dapat menghasilkan proses yang berjalan panjang. Biasanya dapat memerlukan waktu enam puluh (60) detik hingga lebih dari lima (5) menit tergantung pada berbagai faktor, seperti jumlah, ukuran, dan kompleksitas penyesuaian dan kode. Alur analisis adalah awal multi-langkah dan asinkron dengan memulai pekerjaan analisis dengan API status yang digunakan untuk kueri penyelesaian pekerjaan. Contoh alur untuk analisis adalah sebagai berikut:

  1. Mendapatkan token OAuth
  2. Upload panggilan (untuk setiap file secara paralel)
  3. Analisis panggilan (memprakarsai pekerjaan analisis)
  4. Status panggilan hingga selesai (looping dengan jeda di antara panggilan hingga akhir ditandai atau ambang batas terpenuhi)
  5. Unduh hasil dari URI SAS yang disediakan

Beberapa variasi adalah:

  • Sertakan pencarian rangkaian aturan atau aturan sebagai pra-langkah. Namun, akan sedikit lebih cepat untuk memasukkan ID set aturan berkode keras yang telah dikonfigurasi. Disarankan agar Anda menggunakan ruleset yang memenuhi kebutuhan Anda.
  • Anda dapat memilih untuk tidak menggunakan mekanisme Unggah (Lihat upload untuk batasan).

Anda harus menentukan persyaratan berikut:

Lihat artikel berikut untuk dokumentasi di setiap API:

Mengambil daftar set aturan
Mengambil daftar aturan
Mengunggah file
Memanggil analisis
Memeriksa status analisis

Tentukan geografi

Saat Anda berinteraksi dengan layanan pemeriksa Power Apps, file disimpan sementara di Azure bersama dengan laporan yang dihasilkan. Dengan menggunakan API khusus geografi, Anda dapat mengontrol lokasi penyimpanan data. Permintaan ke titik akhir geografi dirutekan ke instans kawasan berdasarkan performa terbaik (latensi pemohon). Setelah permintaan memasukkan instans Layanan Regional, semua pemrosesan dan data yang disimpan tetap berada di kawasan tersebut. Respons API tertentu akan mengembalikan URL instans regional untuk permintaan berikutnya setelah pekerjaan analisis dirutekan ke area tertentu. Setiap geografi mungkin memiliki versi layanan yang berbeda yang diterapkan pada titik waktu tertentu. Penggunaan versi layanan yang berbeda disebabkan oleh proses penyebaran aman multi-tahap, yang memastikan kompatibilitas versi penuh. Dengan demikian, geografi yang sama harus digunakan untuk setiap panggilan API di siklus hidup analisis dan dapat mengurangi waktu eksekusi keseluruhan karena data mungkin tidak harus melakukan perjalanan sejauh itu melalui kabel. Geografi yang tersedia adalah sebagai berikut:

pusat data Azure Nama Geografi URI dasar
Umum Preview Amerika Serikat unitedstatesfirstrelease.api.advisor.powerapps.com
Umum Produksi Amerika Serikat unitedstates.api.advisor.powerapps.com
Umum Produksi Eropa europe.api.advisor.powerapps.com
Umum Produksi Asia asia.api.advisor.powerapps.com
Umum Produksi Australia australia.api.advisor.powerapps.com
Umum Produksi Jepang japan.api.advisor.powerapps.com
Umum Produksi India india.api.advisor.powerapps.com
Umum Produksi Kanada canada.api.advisor.powerapps.com
Umum Produksi Amerika Selatan southamerica.api.advisor.powerapps.com
Umum Produksi Inggris Raya unitedkingdom.api.advisor.powerapps.com
Umum Produksi Prancis france.api.advisor.powerapps.com
Umum Produksi Jerman germany.api.advisor.powerapps.com
Umum Produksi Uni Emirat Arab unitedarabemirates.api.advisor.powerapps.com
Umum Produksi Switzerland switzerland.api.advisor.powerapps.com
Umum Produksi Afrika Selatan southafrica.api.advisor.powerapps.com
Umum Produksi Korea Selatan korea.api.advisor.powerapps.com
Umum Produksi Norwegia norway.api.advisor.powerapps.com
Umum Produksi Singapura singapore.api.advisor.powerapps.com
Umum Produksi Swedia sweden.api.advisor.powerapps.com
Umum Produksi Polandia poland.api.advisor.powerapps.com
Umum Produksi Italia italy.api.advisor.powerapps.com
Umum Produksi Pemerintah AS gov.api.advisor.powerapps.us
Umum Produksi Pemerintah AS L4 high.api.advisor.powerapps.us
Umum Produksi Pemerintah AS L5 (DOD) mil.api.advisor.appsplatform.us
Umum Produksi Tiongkok dioperasikan oleh 21Vianet china.api.advisor.powerapps.cn

Note

Anda dapat memilih menggunakan geografi pratinjau untuk menggabungkan fitur terbaru dan perubahan sebelumnya. Namun, perhatikan bahwa pratinjau hanya menggunakan wilayah Azure Amerika Serikat.

Penerapan versi

Meskipun tidak diperlukan, disarankan untuk menyertakan parameter string kueri versi api dengan versi API yang diinginkan. Versi API saat ini adalah 2.0 untuk set aturan, aturan, dan 1.0 untuk semua permintaan lainnya. Contohnya, set aturan berikut ini adalah permintaan HTTP yang menentukan untuk menggunakan versi API 2.0:

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

Jika tidak tersedia, versi API terbaru akan digunakan secara default. Disarankan menggunakan nomor versi eksplisit karena versi tersebut akan bertambah jika perubahan yang merusak diperkenalkan. Jika nomor versi ditentukan dalam permintaan, dukungan kompatibilitas mundur di versi lebih baru (numerik lebih besar) akan dipertahankan.

Set aturan dan aturan

pemeriksa Power Apps memerlukan daftar aturan saat dijalankan. Aturan ini dapat diberikan dalam bentuk aturan individual atau pengelompokan aturan, yang disebut sebagai ruleset. Ruleset adalah cara mudah untuk menentukan grup aturan daripada harus menentukan setiap aturan individual. Contohnya, fitur pemeriksa solusi menggunakan ruleset bernama Solution Checker. Saat aturan baru ditambahkan atau dihapus, layanan akan mencakup perubahan ini secara otomatis tanpa memerlukan perubahan apa pun oleh aplikasi yang mengonsumsi. Jika Anda memerlukan daftar aturan tidak berubah secara otomatis seperti yang dijelaskan di atas, maka aturan dapat ditentukan secara terpisah. Ruleset dapat memiliki satu atau beberapa aturan tanpa batas. Aturan dapat berupa tanpa atau beberapa ruleset. Anda dapat memperoleh daftar semua aturan dengan memanggil API sebagai berikut: [Geographical URL]/api/ruleset. Titik akhir ini sekarang memerlukan autentikasi.

Set aturan Solution checker

Ruleset solution checker berisi seperangkat aturan yang berdampak yang memiliki peluang terbatas untuk positif palsu. Jika menjalankan analisis terhadap solusi yang ada, dianjurkan agar Anda memulai dengan set aturan ini. Ini adalah set aturan yang digunakan oleh fitur pemeriksa solusi.

Kumpulan aturan sertifikasi marketplace

Saat menerbitkan aplikasi di Marketplace, Anda harus mendapatkan sertifikasi aplikasi Anda. Aplikasi yang diterbitkan di Marketplace diperlukan untuk memenuhi standar kualitas tinggi. Seperangkat aturan sertifikasi Marketplace berisi aturan yang merupakan bagian dari seperangkat aturan pemeriksa solusi, ditambah aturan lain untuk memastikan hanya aplikasi berkualitas tinggi yang diterbitkan di toko. Beberapa aturan sertifikasi Marketplace lebih rentan terhadap deteksi positif palsu dan mungkin memerlukan lebih banyak perhatian dalam penyelesaiannya.

Temukan ID penyewa Anda

ID penyewa Anda diperlukan untuk berinteraksi dengan api yang memerlukan Token. Lihat artikel ini untuk rincian tentang cara mendapatkan id penyewa. Anda juga dapat menggunakan perintah PowerShell untuk mengambil ID penyewa. Contoh berikut menerapkan cmdlet dalam modul AzureAD.

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

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

ID penyewa adalah nilai properti ObjectId yang dihasilkan dari Get-AzureADTenantDetail. Anda juga dapat melihatnya setelah masuk menggunakan cmdlet Connect-AzureAD di output cmdlet. Dalam hal ini, akan diberi nama TenantId.

Autentikasi dan otorisasi

Mengajukan kueri aturan dan set aturan tidak memerlukan token OAuth, namun semua API lain memerlukan token tersebut. Api mendukung penemuan otorisasi dengan memanggil salah satu api yang memerlukan Token. Responsnya adalah kode status HTTP 401 yang tidak sah dengan header Autentikasi WWW, URI otorisasi, dan ID sumber daya. Anda juga harus menyediakan ID penyewa di header x-ms-tenant-id. Lihat autentikasi dan otorisasi pemeriksa Power Apps untuk informasi selengkapnya. Berikut ini adalah contoh dari header respons yang dihasilkan dari permintaan API:

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

Setelah Anda memiliki informasi ini, Anda dapat memilih untuk menggunakan Pustaka Autentikasi Microsoft (MSAL) atau beberapa mekanisme lain untuk memperoleh token. Berikut ini adalah contoh bagaimana hal ini dapat dilakukan menggunakan C# dan pustaka 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();

Untuk kode kerja lengkap, lihat sampel QuickStartAPI Web.

Setelah memperoleh token, Anda disarankan untuk memberikan token yang sama ke panggilan berikutnya dalam siklus hidup permintaan. Namun, permintaan tambahan kemungkinan akan menjamin token baru diperoleh untuk alasan keamanan.

Keamanan transportasi

Untuk enkripsi terbaik di kelasnya, layanan pemeriksa hanya mendukung komunikasi menggunakan Transport Layer Security (TLS) 1.2 ke atas. Untuk panduan tentang praktik terbaik .NET terkait TLS, lihat praktik terbaik Transport Layer Security (TLS) dengan .NET Framework.

Format Laporan

Hasil analisis solusi adalah file zip yang berisi satu atau beberapa laporan dalam format JSON standar. Format laporan didasarkan pada hasil analisis statis yang disebut sebagai Static Analysis Results Interchange Format (SARIF). Tersedia alat bantu untuk menampilkan dan berinteraksi dengan dokumen SARIF. Untuk informasi lebih lanjut, lihat situs web ini. Layanan ini menggunakan versi dua dari OASIS standar.

Baca juga

Mengambil daftar set aturan
Mengambil daftar aturan
Mengunggah file
Memanggil analisis
Memeriksa status analisis