แชร์ผ่าน


ใช้การดำเนินงานเขียน, ปรับปรุง, และลบของ Web API ของพอร์ทัล

หมายเหตุ

พอร์ทัล Power Apps คือ Power Pages โดยมีผลในวันที่ 12 ตุลาคม 2022 ข้อมูลเพิ่มเติม: Microsoft Power Pages มีให้ใช้งานทั่วไป (บล็อก)
ในไม่ช้าเราจะย้ายและรวมคู่มือพอร์ทัล Power Apps เข้ากับ คู่มือ Power Pages

คุณสามารถทำ การดำเนินงาน Web API ในพอร์ทัลได้ การดำเนินงาน Web API ประกอบด้วยคำขอ HTTP และการตอบกลับ บทความนี้แสดงตัวอย่างการเขียน, อัปเดต, และลบการดำเนินการ, วิธีการ, URI, และ JSON ตัวอย่าง ที่คุณสามารถใช้ได้ในคำขอ HTTP

ข้อสำคัญ

  • รุ่นพอร์ทัลของคุณต้องเป็น 9.3.3.x หรือใหม่กว่าเพื่อให้คุณลักษณะนี้ทำงานได้

ข้อกำหนดเบื้องต้น

  • เปิดใช้งานตารางและฟิลด์สำหรับการดำเนินงานของ Web API ข้อมูลเพิ่มเติม: การตั้งค่าไซต์สำหรับ Web API

  • Web API ของพอร์ทัลเข้าถึงเรกคอร์ดตาราง และติดตามสิทธิ์ของตารางที่มอบให้กับผู้ใช้ผ่านบทบาทเว็บที่เกี่ยวข้อง ตรวจสอบให้แน่ใจว่าคุณตั้งค่าคอนฟิกสิทธิ์ของตารางที่ถูกต้อง ข้อมูลเพิ่มเติม: สร้างบทบาทเว็บ

สร้างเรกคอร์ดในตาราง

หมายเหตุ

เมื่อพูดถึงตาราง Dataverse โดยใช้ 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 Method 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 Method 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);
        }
  });

ขั้นตอนถัดไป

บทช่วยสอน: ใช้ Web API ของพอร์ทัล

ดูเพิ่มเติม

ภาพรวมของ API เว็บของพอร์ทัล
พอร์ทัลอ่านการดำเนินการโดยใช้ Web API

หมายเหตุ

บอกให้เราทราบเกี่ยวกับภาษาที่คุณต้องการในคู่มือ ทำแบบสำรวจสั้นๆ (โปรดทราบว่าแบบสำรวจนี้เป็นภาษาอังกฤษ)

แบบสำรวจนี้ใช้เวลาทำประมาณเจ็ดนาที ไม่มีการเก็บข้อมูลส่วนบุคคล (คำชี้แจงสิทธิ์ส่วนบุคคล)