ใช้การดำเนินงานเขียน, ปรับปรุง, และลบของ Web API ของพอร์ทัล
คุณสามารถทำ การดำเนินงาน Web API ในพอร์ทัลได้ การดำเนินงาน Web API ประกอบด้วยคำขอ HTTP และการตอบกลับ บทความนี้แสดงตัวอย่างการเขียน, อัปเดต, และลบการดำเนินการ, วิธีการ, URI, และ JSON ตัวอย่าง ที่คุณสามารถใช้ได้ในคำขอ HTTP
สำคัญ
- รุ่นพอร์ทัลของคุณต้องเป็น 9.3.3.x หรือใหม่กว่าเพื่อให้คุณลักษณะนี้ทำงานได้
ข้อกำหนดเบื้องต้น
เปิดใช้งานตารางและฟิลด์สำหรับการดำเนินงานของ Web API ข้อมูลเพิ่มเติม: การตั้งค่าไซต์สำหรับ Web API
Web API ของพอร์ทัลเข้าถึงเรกคอร์ดตาราง และติดตามสิทธิ์ของตารางที่มอบให้กับผู้ใช้ผ่านบทบาทเว็บที่เกี่ยวข้อง ตรวจสอบให้แน่ใจว่าคุณตั้งค่าคอนฟิกสิทธิ์ของตารางที่ถูกต้อง ข้อมูลเพิ่มเติม: สร้างบทบาทเว็บ
สร้างเรกคอร์ดในตาราง
หมายเหตุ
เมื่อพูดถึงตาราง Dataverse โดยใช้ Web API ของพอร์ทัล คุณต้องใช้ EntitySetName ตัวอย่างเช่น ในการเข้าถึงตาราง บัญชี ไวยากรณ์รหัสจะใช้ EntitySetName ของ บัญชี
การสร้างพื้นฐาน
การดำเนินการ | วิธีการ | URI | ตัวอย่าง JSON |
---|---|---|---|
การสร้างพื้นฐาน | ประกาศ | [Portal URI]/_api/accounts | {"name":"Sample Account"} |
JSON ตัวอย่างสำหรับการสร้างเรกคอร์ดตารางที่เกี่ยวข้องในการดำเนินการเดียว
ดังตัวอย่างเช่น เนื้อหาคำขอต่อไปนี้ที่โพสต์ไปยังชุดตาราง บัญชี จะสร้างตารางใหม่ทั้งหมดสี่ตาราง—ซึ่งรวมถึงบัญชี—ในบริบทของการสร้างบัญชี
- ผู้ติดต่อถูกสร้างขึ้นเนื่องจากถูกกำหนดให้เป็นคุณสมบัติออบเจ็กต์ของคุณสมบัติการนำทางแบบค่าเดียว
primarycontactid
- โอกาสทางการขายถูกสร้างขึ้นเนื่องจากถูกกำหนดให้เป็นออบเจ็กต์ภายในอาร์เรย์ที่ถูกตั้งค่าเป็นค่าของคุณสมบัติการนำทางที่มีค่าคอลเลกชัน
opportunity_customer_accounts
- งานถูกสร้างขึ้นเนื่องจากถูกกำหนดให้เป็นออบเจ็กต์ภายในอาร์เรย์ที่ถูกตั้งค่าเป็นค่าของคุณสมบัติการนำทางที่มีค่าคอลเลกชัน
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" }
]
}
]
}
เชื่อมโยงเรกคอร์ดตารางในการสร้าง
Operation | เมธอด | URI | ตัวอย่าง JSON |
---|---|---|---|
เชื่อมโยงเรกคอร์ดตารางในการสร้าง | POST | [Portal URI]/_api/accounts | {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"} |
JSON ตัวอย่างสำหรับการสร้างคำอธิบายประกอบผ่าน Web API
{
"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
จะมีสิ่งที่แนบเป็นสตริง base64
อัปเดตและลบเรกคอร์ดโดยใช้ API สำหรับเว็บ
การปรับปรุงพื้นฐาน
การดำเนินงาน | วิธีการ | URI | ตัวอย่าง JSON |
---|---|---|---|
การปรับปรุงพื้นฐาน | โปรแกรมแก้ไข | [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 } |
ปรับปรุงค่าคุณสมบัติเดียว
การดำเนินการ | วิธีการ | URI | ตัวอย่าง JSON |
---|---|---|---|
ปรับปรุงค่าคุณสมบัติเดียว | สำรอง | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name | {"value": "Updated Sample Account Name"} |
ลบหรือล้างค่าในฟิลด์
Operation | เมธอด | URI |
---|---|---|
ลบหรือล้างค่าในฟิลด์ | ลบ | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description |
การลบพื้นฐาน
การดำเนินการ | วิธีการ | URI |
---|---|---|
การลบพื้นฐาน | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001) |
เชื่อมโยงและยกเลิกการเชื่อมโยงตารางโดยใช้ API สำหรับเว็บ
เพิ่มการอ้างอิงไปยังคุณสมบัติการนำทางที่มีค่าคอลเลกชัน
การดำเนินการ | วิธีการ | URI | ตัวอย่าง JSON |
---|---|---|---|
เพิ่มการอ้างอิงไปยังคุณสมบัติการนำทางที่มีค่าคอลเลกชัน | ประกาศ | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref | {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"} |
ลบการอ้างอิงตาราง
การดำเนินงาน | วิธีการ | URI |
---|---|---|
ลบการอ้างอิงตาราง | DELETE | [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) |
ลบการอ้างอิงไปยังตารางสำหรับคุณสมบัติการนำทางที่มีค่าเดียว
สำหรับคุณสมบัติการนำทางที่มีค่าเดียว ให้ลบพารามิเตอร์สตริงการค้นหา $id
การดำเนินงาน | วิธีการ | URI |
---|---|---|
ลบการอ้างอิงไปยังตารางสำหรับคุณสมบัติการนำทางที่มีค่าเดียว | DELETE | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref |
เปลี่ยนการอ้างอิงในคุณสมบัติการนำทางที่มีค่าเดียว
การดำเนินการ | วิธีการ | URI | ตัวอย่าง JSON |
---|---|---|---|
เปลี่ยนการอ้างอิงในคุณสมบัติการนำทางที่มีค่าเดียว | PUT | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref | {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
เชื่อมโยงตารางในการสร้าง
สามารถสร้างตารางใหม่ด้วยความสัมพันธ์โดยใช้การแทรก แบบลึก
เชื่อมโยงตารางกับการอัปเดตโดยใช้คุณสมบัติการนำทางที่มีค่าเดียว
คุณสามารถเชื่อมโยงตารางในการอัปเดตโดยใช้ข้อความเดียวกับที่อธิบายไว้ใน การอัปเดตพื้นฐาน ก่อนหน้านี้ในหัวข้อนี้ แต่คุณต้องใช้คำอธิบายประกอบ @odata.bind
เพื่อตั้งค่าของคุณสมบัติการนำทางที่มีค่าเดียว ตัวอย่างต่อไปนี้จะเปลี่ยนบัญชีที่เชื่อมโยงกับโอกาสทางการขายโดยใช้คุณสมบัติการนำทางที่มีค่าเดียวของ customerid_account
เชื่อมโยงตารางกับการอัปเดตโดยใช้คุณสมบัติการนำทางที่มีค่าเดียว
การดำเนินงาน | วิธีการ | URI | ตัวอย่าง JSON |
---|---|---|---|
เชื่อมโยงตารางกับการอัปเดตโดยใช้คุณสมบัติการนำทางที่มีค่าเดียว | PATCH | [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) | {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"} |
ตัวอย่าง Web API AJAX
ตัวอย่างนี้สาธิตวิธีการสร้าง อัปเดต และลบเรกคอร์ดตารางโดยใช้ JavaScript แบบอะซิงโครนัสและ XML (AJAX)
ฟังก์ชัน Wrapper AJAX
(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)
สร้าง
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"))
}
});
ปรับปรุง
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);
}
});
เชื่อมโยง
ตัวอย่างต่อไปนี้จะกำหนดให้ผู้ติดต่อที่มีอยู่เป็นผู้ติดต่อหลักสำหรับบัญชีที่มีอยู่
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");
}
});
ขั้นตอนถัดไป
วิธีการ: ใช้ Web API ของพอร์ทัล