Gunakan operasi tulis, kemas kini dan padam API Web portal
Anda boleh melakukan Operasi API Web tersedia dalam portal. Operasi API Web terdiri daripada permintaan dan respons HTTP. Artikel ini menyediakan operasi tulis, kemas kini dan padam sampel, kaedah, URI dan JSON sampel yang boleh anda gunakan dalam permintaan HTTP.
Penting
- Versi portal anda mesti 9.3.3.x atau kemudian untuk ciri ini berfungsi.
Prasyarat
Dayakan jadual dan medan untuk operasi API Web. Maklumat lanjut, Tetapan tapak untuk API Web
API Web portal mengakses jadual rekod mengikut keizinan jadual yang diberikan kepada pengguna melalui yang berkaitan peranan web. Pastikan anda mengkonfigurasi keizinan jadual yang betul. Maklumat lanjut: Cipta peranan web
Cipta rekod dalam jadual
Nota
Apabila merujuk kepada jadual Dataverse menggunakan API Web portal, anda perlu menggunakan EntitySetName, sebagai contoh, untuk mengakses jadual akaun, sintaks kod akan menggunakan EntitySetName akaun.
Cipta asas
Operasi | Kaedah | URI | Sampel JSON |
---|---|---|---|
Cipta asas | SIARAN | [Portal URI]/_api/accounts | {"nama":"Akaun Sampel"} |
Contoh JSON untuk mencipta rekod jadual yang berkaitan dalam satu operasi
Sebagai contoh, isi permintaan yang berikut disiarkan kepada set jadual Akaun akan mencipta sejumlah empat jadual baharu—termasuk akaun—dalam konteks mencipta akaun.
- Kenalan dicipta kerana ia ditakrifkan sebagai sifat objek sifat navigasi bernilai tunggal
primarycontactid
. - Peluang dicipta kerana ia ditakrifkan sebagai objek dalam tatasusunan yang ditetapkan kepada nilai sifat navigasi bernilai koleksi
opportunity_customer_accounts
. - Tugas dicipta kerana ia ditakrifkan sebagai objek dalam tatasusunan yang ditetapkan kepada nilai sifat navigasi bernilai koleksi
Opportunity_Tasks
.
{
"name": "Sample Account",
"primarycontactid":
{
"firstname": "Alton",
"lastname": "Stott"
},
"opportunity_customer_accounts":
[
{
"name": "Opportunity associated to Sample Account",
"Opportunity_Tasks":
[
{ "subject": "Task associated to opportunity" }
]
}
]
}
Kaitkan rekod jadual sewaktu dicipta
Operasi | Kaedah | URI | Sampel JSON |
---|---|---|---|
Kaitkan rekod jadual sewaktu dicipta | POST | [Portal URI]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
Sampel JSON untuk mencipta anotasi melalui API Web
{
"new_attribute1": "test attribute 1",
"new_attribute2": "test attribute 2",
"new_comments": "test comments",
"new_recordurl": recordURL,
"new_feedback_Annotations":
[
{
"notetext": "Screenshot attached",
"subject": "Attachment",
"filename": file.name,
"mimetype": file.type,
"documentbody": base64str,
}
]
}
documentbody
akan mengandungi lampiran sebagai rentetan base64.
Kemas kini dan padamkan rekod dengan menggunakan API Web
Kemas kini asas
Operasi | Kaedah | URI | Sampel JSON |
---|---|---|---|
Kemas kini asas | TAMPAL | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001) | { "name": "Updated Sample Account ", "creditonhold": true, "address1_latitude": 47.639583, "description": "This is the updated description of the sample account", "revenue": 6000000, "accountcategorycode": 2 } |
Kemas kini nila sifat tunggal
Operasi | Kaedah | URI | Sampel JSON |
---|---|---|---|
Kemas kini nila sifat tunggal | LETAKKAN | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
Padamkan atau kosongkan nilai medan
Operasi | Kaedah | URI |
---|---|---|
Padamkan atau kosongkan nilai medan | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
Padam asas
Operasi | Kaedah | URI |
---|---|---|
Padam asas | PADAM | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001) |
Kemas kini dan menyahkaitkan jadual dengan menggunakan API Web
Tambahkan rujukan pada sifat navigasi bernilai koleksi
Operasi | Kaedah | URI | Sampel JSON |
---|---|---|---|
Tambahkan rujukan pada sifat navigasi bernilai koleksi | SIARAN | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
Alih keluar rujukan kepada jadual
Operasi | Kaedah | URI |
---|---|---|
Alih keluar rujukan kepada jadual | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
Alih keluar rujukan kepada jadual untuk sifat navigasi bernilai tunggal
Untuk sifat navigasi bernilai tunggal, alih keluar parameter rentetan pertanyaan $id.
Operasi | Kaedah | URI |
---|---|---|
Alih keluar rujukan kepada jadual untuk sifat navigasi bernilai tunggal | DELETE | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
Ubah rujukan pada sifat navigasi bernilai tunggal
Operasi | Kaedah | URI | Sampel JSON |
---|---|---|---|
Ubah rujukan pada sifat navigasi bernilai tunggal | LETAKKAN | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Kaitkan jadual sewaktu dicipta
Jadual baharu boleh dicipta dengan perhubungan dengan menggunakan sisipan dalam.
Mengaitkan jadual kemas kini dengan menggunakan sifat navigasi bernilai tunggal
Anda boleh mengaitkan jadual pada kemas kini dengan menggunakan mesej yang sama yang diterangkan dalam Kemas kini asas sebelum ini dalam topik ini, tetapi anda mesti menggunakan anotasi @odata.bind
untuk menetapkan nilai sifat navigasi bernilai tunggal. Contoh berikut mengubah akaun yang dikaitkan dengan peluang menggunakan sifat navigasi bernilai tunggal customerid_account
.
Mengaitkan jadual kemas kini dengan menggunakan sifat navigasi bernilai tunggal
Operasi | Kaedah | URI | Sampel JSON |
---|---|---|---|
Mengaitkan jadual kemas kini dengan menggunakan sifat navigasi bernilai tunggal | PATCH | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
Sampel AJAX API Web
Sampel ini menunjukkan cara mencipta, mengemas kini dan memadam rekod jadual dengan menggunakan tidak segerak JavaScript dan XML (AJAX).
Fungsi AJAX Pembalut
(function(webapi, $){
function safeAjax(ajaxOptions) {
var deferredAjax = $.Deferred();
shell.getTokenDeferred().done(function (token) {
// add headers for AJAX
if (!ajaxOptions.headers) {
$.extend(ajaxOptions, {
headers: {
"__RequestVerificationToken": token
}
});
} else {
ajaxOptions.headers["__RequestVerificationToken"] = token;
}
$.ajax(ajaxOptions)
.done(function(data, textStatus, jqXHR) {
validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve);
}).fail(deferredAjax.reject); //AJAX
}).fail(function () {
deferredAjax.rejectWith(this, arguments); // on token failure pass the token AJAX and args
});
return deferredAjax.promise();
}
webapi.safeAjax = safeAjax;
})(window.webapi = window.webapi || {}, jQuery)
Cipta
webapi.safeAjax({
type: "POST",
url: "/_api/accounts",
contentType: "application/json",
data: JSON.stringify({
"name": "Sample Account"
}),
success: function (res, status, xhr) {
//print id of newly created table record
console.log("entityID: "+ xhr.getResponseHeader("entityid"))
}
});
Kemas kini
webapi.safeAjax({
type: "PATCH",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
data: JSON.stringify({
"name": "Sample Account - Updated"
}),
success: function (res) {
console.log(res);
}
});
Delete
webapi.safeAjax({
type: "DELETE",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
contentType: "application/json",
success: function (res) {
console.log(res);
}
});
Kaitkan
Contoh berikut akan menugaskan kenalan sedia ada sebagai kenalan utama untuk akaun sedia ada.
var record = {};
record[primarycontactid@odata.bind] = "/contacts(00000000-0000-0000-0000-000000000002)";
webapi.safeAjax({
type: "PATCH",
contentType: "application/json",
url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
data: JSON.stringify(record),
success: function (data, textStatus, xhr) {
console.log("Record updated");
}
});