Data kueri menggunakan API Web portal
Catatan
Mulai 12 Oktober 2022, portal Power Apps menjadi Power Pages. Informasi selengkapnya: Microsoft Power Pages kini tersedia secara umum (blog)
Kami akan segera memigrasikan dan menggabungkan dokumentasi portal Power Apps dengan dokumentasi Power Pages.
Anda dapat menggunakan operasi api web yang tersedia di portal. Operasi API web terdiri dari permintaan dan respons HTTP. Artikel ini memberikan operasi baca sampel, metode, URI, dan JSON sampel yang dapat Anda gunakan dalam permintaan HTTP.
Prasyarat
Versi portal Anda harus 9.4.1.x atau yang lebih tinggi.
Aktifkan tabel dan bidang untuk operasi Web API. Informasi lebih lanjut, lihat pengaturan situs untuk API Web.
API Web portal mengakses rekaman tabel dan mengikuti izin tabel yang diberikan kepada pengguna melalui peran web terkait. Pastikan Anda mengkonfigurasi izin tabel yang benar. Informasi selengkapnya: Membuat peran web.
Catatan
Bila merujuk ke tabel Dataverse menggunakan API Web portal, Anda harus menggunakan EntitySetName, contohnya,untuk mengakses tabel akun, sintaks kode akan menggunakan EntitySetName dari akun.
Rekaman kueri
Contoh berikut mengkueri rekaman akun:
Operasi | Metode | URI |
---|---|---|
Ambil rekaman tabel | GET | [Portal URI]/_api/accounts Contoh: https://contoso.powerappsportals.com/_api/accounts |
Contoh respons
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
Gunakan opsi kueri sistem $select dan $top untuk menghasilkan properti nama tiga akun pertama:
Operasi | Metode | URI |
---|---|---|
Ambil tiga rekaman entitas pertama | GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Contoh: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Ambil akun dengan menggunakan ID akun:
Operasi | Metode | URI |
---|---|---|
Ambil properti spesifik untuk rekaman | GET | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name Contoh: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Contoh respons
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Menerapkan pilihan kueri sistem
Setiap pilihan kueri sistem yang Anda lampirkan ke URL untuk rangkaian entitas ditambahkan menggunakan sintaks untuk string kueri. Yang pertama ditambahkan setelah [?] dan pilihan kueri berikut dipisahkan menggunakan [&]. Semua pilihan kueri peka huruf besar/kecil seperti ditunjukkan dalam contoh berikut:
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 Contoh: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Properti permintaan spesifik
Gunakan opsi kueri sistem $select untuk membatasi properti yang dikembalikan seperti yang diperlihatkan dalam contoh berikut:
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Contoh: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Penting
Ini adalah Praktik terbaik performa. Jika properti tidak ditentukan dan Anda telah mengkonfigurasikan nilai pengaturan situs Webapi/<table name>/fields
ke *
, maka semua properti akan dihasilkan menggunakan $select
. Jika tidak ada properti yang ditentukan, maka kesalahan akan dihasilkan.
Filter hasil
Gunakan opsi $filter kueri sistem untuk menetapkan kriteria baris mana yang akan dikembalikan.
Operator filter standar
API Web mendukung operator filter OData standar yang tercantum dalam tabel berikut:
Operator | KETERANGAN | Contoh |
---|---|---|
Operator Perbandingan | ||
eq | Sama dengan | $filter=revenue eq 100000 |
ne | Tidak sama dengan | $filter=revenue ne 100000 |
gt | Lebih dari | $filter=revenue gt 100000 |
ge | Lebih dari atau sama dengan | $filter=revenue ge 100000 |
lt | Kurang dari | $filter=revenue lt 100000 |
le | Kurang dari atau sama dengan | $filter=revenue le 100000 |
operator logika | ||
dan | Logis and | $filter=revenue lt 100000 and revenue gt 2000 |
or | Logis or | $filter=contains(name,'(sample)') or contains(name,'test') |
bukan | Negasi logis | $filter=not contains(name,'sample') |
Operator pengelompokan | ||
( ) | pengelompokan preseden | (contains(name,'sample') or contains(name,'test')) and revenue gt 5000 |
Fungsi kueri standar
API Web mendukung fungsi kueri string OData standar berikut:
Function | Contoh |
---|---|
berisi | $filter=contains(name,'(sample)') |
endswith | $filter=endswith(name,'Inc.') |
startswith | $filter=startswith(name,'a') |
Fungsi kueri Dataverse
Web API mendukung fungsi kueri Dataverse untuk memfilter hasil. Untuk informasi lebih lanjut, lihat Referensi Fungsi Kueri WEB API.
Hasil pengurutan
Tentukan urutan item yang dikembalikan menggunakan opsi kueri sistem $orderby . Gunakan akhiran asc atau desc untuk menentukan urutan naik atau turun masing-masing. Default akan menaik jika akhiran tidak diterapkan. Contoh berikut menunjukkan pengambilan nama dan properti pendapatan akun yang diurutkan dengan menaik pendapatan dan turun nama.
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 Contoh: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Mengagregat dan mengelompokkan hasil
Dengan menggunakan $apply, Anda dapat menggabungkan dan mengelompokkan data Anda secara dinamis seperti yang terlihat dalam contoh berikut:
Skenario | Contoh |
---|---|
Daftar status unik di kueri | accounts?$apply=groupby((statuscode)) |
Jumlah agregat perkiraan nilai | opportunities?$apply=aggregate(estimatedvalue with sum as total) |
Ukuran rata-rata transaksi berdasarkan perkiraan nilai dan status | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
Jumlah perkiraan nilai berdasarkan status | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total)) |
Pendapatan peluang total berdasarkan nama akun | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
Nama kontak utama untuk akun di 'WA' | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Tanggal dan waktu rekaman terakhir dibuat | accounts?$apply=aggregate(createdon with max as lastCreate) |
Tanggal dan waktu rekaman pertama kali dibuat | accounts?$apply=aggregate(createdon with min as firstCreate) |
Mengambil hitungan baris
Gunakan opsi kueri sistem $count dengan nilai true untuk menyertakan hitungan entitas yang cocok dengan kriteria filter hingga 5.000.
Metode | URI |
---|---|
GET | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true Contoh: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Contoh respons
{
"@odata.count": 10,
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
Jika Anda tidak ingin mengembalikan data apa pun kecuali untuk hitungan, Anda dapat menerapkan $count ke koleksi apa pun untuk mendapatkan nilainya.
Metode | URI |
---|---|
GET | [Portal URI/_api/accounts/$count Contoh: https://contoso.powerappsportals.com/_api/accounts/$count |
Contoh respons
3
Perbandingan kolom
Contoh berikut menunjukkan cara membandingkan kolom menggunakan WEB API:
Metode | URI |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname Contoh: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Mengambil rekaman tabel terkait dengan kueri
Gunakan opsi kueri sistem$expand di properti navigasi untuk mengontrol data apa dari entitas terkait yang dikembalikan.
Properti navigasi tediarahkan pencarian
Anda harus menggunakan Microsoft.Dynamics.CRM.associatednavigationproperty sebagai atribut pencarian saat menggunakan pilihan kueri $expand.
Untuk menentukan Microsoft.Dynamics.CRM.associatednavigationproperty atribut, Anda dapat membuat permintaan http GET berikut untuk kolom menggunakan aturan penamaan berikut: _name_value.
Pada contoh berikut, kita dapat menentukan properti navigasi terkait dari kolom Kontak Utama pada tabel Akun dengan menentukan nama kolom primarycontactid dengan memformat nama pada permintaan: _primarycontactid_value.
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value Contoh https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Contoh respons
{
"value": [
{
"@odata.etag": "W/\"2465216\"",
"_primarycontactid_value@OData.Community.Display.V1.FormattedValue": "Yvonne McKay (sample)",
"_primarycontactid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "primarycontactid",
"_primarycontactid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
"_primarycontactid_value": "417319b5-cd18-ed11-b83c-000d3af4d812",
"accountid": "2d7319b5-cd18-ed11-b83c-000d3af4d812"
}
]
}
Kita lihat dari respons yang terkait dengan properti navigasi adalah primarycontactid. Properti navigasi yang terkait dapat berupa nama logis atau nama skema kolom pencarian, tergantung pada cara tabel dibuat.
Untuk informasi lebih lanjut lihat Mengambil data tentang properti pencarian.
Ambil rekaman tabel terkait dengan memperluas properti navigasi bernilai tunggal
Contoh berikut menunjukkan cara mengambil kontak untuk semua rekaman akun. Untuk rekaman kontak terkait, kami hanya mengambil contactid dan fullname.
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) Contoh: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Contoh respons
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e6e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Yvonne McKay (sample)"
}
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e8e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Susanna Stubberod (sample)"
}
}
]
}
Ambil tabel terkait dengan memperluas properti navigasi bernilai kumpulan
Jika Anda memperluas parameter navigasi bernilai kumpulan untuk mengambil tabel terkait untuk rangkaian entitas, hanya satu tingkat kedalaman yang akan dikembalikan jika ada data. Jika tidak, kumpulan akan mengembalikan larik kosong.
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) Contoh: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Ambil tabel terkait dengan memperluas baik properti navigasi bernilai kumpulan maupun bernilai tunggal
Contoh berikut memperlihatkan bagaimana Anda dapat memperluas entitas terkait untuk rangkaian entitas menggunakan properti navigasi bernilai tunggal maupun kumpulan. Anda harus menentukan nama relasi tabel dalam sintaks kode Anda.
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) Contoh: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Langkah Berikutnya
Operasi Menulis, Memperbarui dan menghapus portal dengan menggunakan Web API
Baca juga
Ikhtisar API Web portal
Tutorial: Menggunakan API Web portal
Mengonfigurasi izin kolom
Catatan
Apa bahasa dokumentasi yang Anda inginkan? Lakukan survei singkat. (perlu diketahui bahwa survei ini dalam bahasa Inggris)
Survei akan berlangsung kurang lebih selama tujuh menit. Tidak ada data pribadi yang dikumpulkan (pernyataan privasi).