สืบค้นข้อมูลโดยใช้ Web API ของพอร์ทัล
หมายเหตุ
พอร์ทัล Power Apps คือ Power Pages โดยมีผลในวันที่ 12 ตุลาคม 2022 ข้อมูลเพิ่มเติม: Microsoft Power Pages มีให้ใช้งานทั่วไป (บล็อก)
ในไม่ช้าเราจะย้ายและรวมคู่มือพอร์ทัล Power Apps เข้ากับ คู่มือ Power Pages
คุณสามารถใช้ การดำเนินการของ Web API ที่พร้อมใช้งาน ในพอร์ทัล การดำเนินงาน Web API ประกอบด้วยคำขอ HTTP และการตอบกลับ บทความนี้แสดงตัวอย่างการดำเนินการอ่าน, วิธีการ, URI, และ JSON ตัวอย่าง ที่คุณสามารถใช้ได้ในการร้องขอทาง HTTP
ข้อกำหนดเบื้องต้น
เวอร์ชันพอร์ทัลของคุณต้องเป็น 9.4.1.x หรือสูงกว่า
เปิดใช้งานตารางและฟิลด์สำหรับการดำเนินงานของ Web API ข้อมูลเพิ่มเติม: การตั้งค่าไซต์สำหรับ Web API
Web API ของพอร์ทัลเข้าถึงเรกคอร์ดตาราง และติดตามสิทธิ์ของตารางที่มอบให้กับผู้ใช้ผ่านบทบาทเว็บที่เกี่ยวข้อง ตรวจสอบให้แน่ใจว่าคุณตั้งค่าคอนฟิกสิทธิ์ของตารางที่ถูกต้อง ข้อมูลเพิ่มเติม: สร้างบทบาทเว็บ
หมายเหตุ
เมื่อพูดถึงตาราง Dataverse โดยใช้ API เว็บของพอร์ทัล คุณต้องใช้ EntitySetName ตัวอย่างเช่น ในการเข้าถึงตาราง บัญชี ไวยากรณ์รหัสจะใช้ EntitySetName ของ บัญชี
เรกคอร์ดการสอบถาม
ตัวอย่างต่อไปนี้สอบถามเรกคอร์ดลูกค้าองค์กร:
การดำเนินการ | Method | URI |
---|---|---|
ดึงข้อมูลเรกคอร์ดตาราง | รับ | [Portal URI]/_api/accounts ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts |
คำตอบตัวอย่าง
{
"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"
}
]
}
ใช้ตัวเลือกการสอบถามของระบบ $select และ $top เพื่อส่งคืนคุณสมบัติชื่อสำหรับสามบัญชีแรก:
การดำเนินการ | Method | URI |
---|---|---|
ดึงข้อมูลเรกคอร์ดเอนทิตีสามรายการแรก | รับ | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
ดึงข้อมูลบัญชีโดยใช้รหัสบัญชี:
การดำเนินการ | Method | URI |
---|---|---|
ดึงข้อมูลคุณสมบัติเฉพาะสำหรับเรกคอร์ด | รับ | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
คำตอบตัวอย่าง
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
ใช้ตัวเลือกการสอบถามของระบบ
ตัวเลือกการสอบถามของระบบแต่ละรายการที่คุณผนวกเข้ากับ URL สำหรับชุดเอนทิตี จะถูกเพิ่มโดยใช้ไวยากรณ์สำหรับสตริงการสอบถาม รายการแรกถูกผนวกหลังจาก [?] และตัวเลือกการสอบถามต่อไปนี้จะถูกแยกโดยใช้ [&] ตัวเลือกการสอบถามทั้งหมดต้องตรงตามตัวพิมพ์ใหญ่-เล็ก ตามที่แสดงในตัวอย่างต่อไปนี้:
Method | URI |
---|---|
รับ | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
ร้องขอคุณสมบัติเฉพาะ
ใช้ตัวเลือกการสอบถามของระบบ $select เพื่อจำกัดคุณสมบัติที่ส่งคืนดังแสดงในตัวอย่างต่อไปนี้:
Method | URI |
---|---|
รับ | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
ข้อสำคัญ
นี่คือวิธีปฏิบัติที่ดีที่สุดของประสิทธิภาพการทำงาน หากไม่ได้ระบุคุณสมบัติและคุณได้ตั้งค่าคอนฟิกค่าการตั้งค่าไซต์ Webapi/<table name>/fields
เป็น *
จากนั้น คุณสมบัติทั้งหมดจะถูกส่งคืนโดยใช้ $select
หากไม่ได้ระบุคุณสมบัติไว้ ข้อผิดพลาดจะถูกส่งคืน
กรองผลลัพธ์
ใช้ตัวเลือกการสอบถามของระบบ $filter เพื่อกำหนดเกณฑ์ที่จะส่งคืนแถว
ตัวดำเนินการตัวกรองมาตรฐาน
Web API รองรับตัวดำเนินการตัวกรอง OData มาตรฐานที่แสดงในตารางต่อไปนี้:
Operator | รายละเอียด | ตัวอย่างเช่น |
---|---|---|
ตัวดำเนินการเปรียบเทียบ | ||
eq | เท่ากับ | $filter=revenue eq 100000 |
ne | ไม่เท่ากับ | $filter=revenue ne 100000 |
gt | มากกว่า | $filter=revenue gt 100000 |
ge | มากกว่าหรือเท่ากับ | $filter=revenue ge 100000 |
lt | น้อยกว่า | $filter=revenue lt 100000 |
le | น้อยกว่าหรือเท่ากับ | $filter=revenue le 100000 |
ตัวดำเนินการทางตรรกะ: | ||
and | ทางตรรกะและ | $filter=revenue lt 100000 และ revenue gt 2000 |
or | ทางตรรกะหรือ | $filter=contains(name,'(sample)') หรือ contains(name,'test') |
not | นิเสธเชิงตรรกะ | $filter=not contains(name,'sample') |
ตัวดำเนินการจัดกลุ่ม | ||
( ) | การจัดกลุ่มความสำคัญ | (contains(name,'sample') หรือ contains(name,'test')) และ revenue gt 5000 |
ฟังก์ชันการสอบถามมาตรฐาน
Web API รองรับฟังก์ชันการสอบถามสตริง OData มาตรฐานเหล่านี้:
ฟังก์ชัน | ตัวอย่างเช่น |
---|---|
มี | $filter=contains(name,'(sample)') |
ลงท้ายด้วย | $filter=endswith(name,'Inc.') |
เริ่มต้นด้วย | $filter=startswith(name,'a') |
ฟังก์ชันการสอบถาม Dataverse
Web API รองรับฟังก์ชันการสอบถาม Dataverse เพื่อกรองผลลัพธ์ ดูข้อมูลเพิ่มเติมที่ การอ้างอิงฟังก์ชันการสอบถาม Web API
ผลลัพธ์ที่เป็นลำดับ
ระบุลำดับที่จะมีการส่งคืนสินค้าโดยใช้ตัวเลือกการสอบถามของระบบ $orderby ใช้คำต่อท้าย asc หรือ desc เพื่อระบุลำดับจากน้อยไปมากหรือมากไปหาน้อยตามลำดับ ค่าเริ่มต้นคือน้อยไปหามาก ถ้าไม่ได้ใช้คำต่อท้าย ตัวอย่างต่อไปนี้แสดงการดึงชื่อและคุณสมบัติรายได้ของบัญชีที่เรียงลำดับตามรายได้จากน้อยไปมากและตามชื่อจากมากไปน้อย
Method | URI |
---|---|
รับ | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
ผลการรวมและการจัดกลุ่ม
โดยใช้ $apply คุณสามารถรวมและจัดกลุ่มข้อมูลของคุณแบบไดนามิกตามที่เห็นในตัวอย่างต่อไปนี้:
สถานการณ์สมมติ | ตัวอย่างเช่น |
---|---|
รายการของสถานะที่ไม่ซ้ำกันในการสอบถาม | accounts?$apply=groupby((statuscode)) |
ผลรวมของค่าโดยประมาณ | opportunities?$apply=aggregate(estimatedvalue with sum as total) |
ขนาดเฉลี่ยของดีลตามมูลค่าและสถานะโดยประมาณ | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
ผลรวมของมูลค่าโดยประมาณตามสถานะ | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total)) |
รายได้จากโอกาสทางการขายทั้งหมดตามชื่อบัญชี | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
ชื่อผู้ติดต่อหลักสำหรับบัญชีใน 'WA' | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
เวลาและวันที่ของเรกคอร์ดที่สร้างล่าสุด | accounts?$apply=aggregate(createdon with max as lastCreate) |
เวลาและวันที่ของเรกคอร์ดที่สร้างเป็นครั้งแรก | accounts?$apply=aggregate(createdon with min as firstCreate) |
ดึงข้อมูลจำนวนแถว
ใช้ตัวเลือกการสอบถามของระบบ $count ที่มีค่าเป็น จริง เพื่อรวมจำนวนของเอนทิตีที่ตรงกับเกณฑ์ตัวกรองสูงสุด 5,000 รายการ
Method | URI |
---|---|
รับ | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
คำตอบตัวอย่าง
{
"@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"
}
]
}
หากคุณไม่ต้องการส่งคืนข้อมูลใดๆ ยกเว้นการนับ คุณสามารถใช้ $count กับคอลเลกชันใดๆ เพื่อให้ได้เฉพาะค่า
Method | URI |
---|---|
รับ | [Portal URI/_api/accounts/$count ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts/$count |
คำตอบตัวอย่าง
3
การเปรียบเทียบคอลัมน์
ตัวอย่างต่อไปนี้แสดงวิธีเปรียบเทียบคอลัมน์โดยใช้ Web API:
Method | URI |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname ตัวอย่าง: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
ดึงข้อมูลเรกคอร์ดตารางที่เกี่ยวข้องด้วยการสอบถาม
ใช้ตัวเลือกการสอบถามของระบบ $expand ในคุณสมบัติการนำทาง เพื่อควบคุมว่าจะส่งคืนข้อมูลใดบ้างจากเอนทิตีที่เกี่ยวข้อง
ค้นหาคุณสมบัติการนำทางที่เกี่ยวข้อง
คุณจะต้องใช้ Microsoft.Dynamics.CRM.associatednavigationproperty เป็นแอตทริบิวต์การค้นหาเมื่อใช้ตัวเลือกกการสอบถาม $expand
เพื่อกำหนด Microsoft.Dynamics.CRM.associatednavigationproperty ของแอตทริบิวต์ คุณสามารถขอ http GET ต่อไปนี้ สำหรับคอลัมน์โดยใช้หลักการตั้งชื่อต่อไปนี้: _name_value
ในตัวอย่างต่อไปนี้ เราสามารถกำหนดคุณสมบัติการนำทางที่เกี่ยวข้องของคอลัมน์ ผู้ติดต่อหลัก ของตาราง บัญชี โดยระบุชื่อคอลัมน์ primarycontactid โดยการจัดรูปแบบชื่อในคำขอ: _primarycontactid_value
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value ตัวอย่างเช่น https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
คำตอบตัวอย่าง
{
"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"
}
]
}
เราเห็นจากการตอบกลับว่าคุณสมบัติการนำทางที่เกี่ยวข้องคือ primarycontactid คุณสมบัติการนำทางที่เกี่ยวข้องสามารถเป็นคอลัมน์ค้นหาของ ชื่อตรรกะหรือชื่อสคีมา ขึ้นอยู่กับวิธีการสร้างตาราง
สำหรับข้อมูลเพิ่มเติม ดูได้ที่ ดึงข้อมูลเกี่ยวกับคุณสมบัติการค้นหา
ดึงข้อมูลเรกคอร์ดตารางที่เกี่ยวข้องโดยการขยายคุณสมบัติการนำทางแบบค่าเดียว
ตัวอย่างต่อไปนี้แสดงวิธีการเรียกข้อมูลผู้ติดต่อสำหรับเรกคอร์ดลูกค้าองค์กรทั้งหมด สำหรับเรกคอร์ดผู้ติดต่อที่เกี่ยวข้อง เรากำลังดึงข้อมูลเฉพาะ contactid และ fullname
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
คำตอบตัวอย่าง
{
"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)"
}
}
]
}
ดึงข้อมูลตารางที่เกี่ยวข้องโดยการขยายคุณสมบัติการนำทางที่มีค่าคอลเลกชัน
หากคุณขยายพารามิเตอร์การนำทางที่มีค่าคอลเลกชันเพื่อดึงข้อมูลตารางที่เกี่ยวข้องสำหรับชุดเอนทิตี ระบบจะส่งคืนความลึกเพียงระดับเดียวเท่านั้น หากมีข้อมูล มิฉะนั้น คอลเลกชันจะส่งคืนอาร์เรย์ที่ว่างเปล่า
Method | URI |
---|---|
รับ | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
ดึงข้อมูลตารางที่เกี่ยวข้องโดยการขยายคุณสมบัติการนำทางทั้งแบบที่มีค่าคอลเลกชันและแบบค่าเดียว
ตัวอย่างต่อไปนี้สาธิตวิธีที่คุณสามารถขยายเอนทิตีที่เกี่ยวข้องสำหรับชุดเอนทิตีโดยใช้คุณสมบัติการนำทางทั้งแบบค่าเดียวและแบบที่มีค่าคอลเลกชัน คุณจะต้องระบุ ชื่อความสัมพันธ์ของตาราง ในไวยากรณ์ของรหัสของคุณ
Method | URI |
---|---|
รับ | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) ตัวอย่าง: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
ขั้นตอนถัดไป
พอร์ทัลเขียน, ปรับปรุง, และลบการดำเนินงานโดยใช้ Web API
ดูเพิ่มเติม
ภาพรวมของ API เว็บของพอร์ทัล
บทช่วยสอน: ใช้ Web API ของพอร์ทัล
กำหนดค่าสิทธิ์ของคอลัมน์
หมายเหตุ
บอกให้เราทราบเกี่ยวกับภาษาที่คุณต้องการในคู่มือ ทำแบบสำรวจสั้นๆ (โปรดทราบว่าแบบสำรวจนี้เป็นภาษาอังกฤษ)
แบบสำรวจนี้ใช้เวลาทำประมาณเจ็ดนาที ไม่มีการเก็บข้อมูลส่วนบุคคล (คำชี้แจงสิทธิ์ส่วนบุคคล)