ดึงบันทึกโดยใช้ Rest API ใน Salesforce

Dung Banthuk Doy Chi Rest Api Ni Salesforce



ในคู่มือนี้ เราจะพูดถึงวิธีดึงข้อมูลระเบียน Salesforce ด้วย REST API ผ่าน Workbench ใน Salesforce ในส่วนหนึ่งของคู่มือนี้ เราจะพูดถึงวิธีการใช้ Workbench ดึงข้อมูลเรกคอร์ดเฉพาะโดยใช้ sObject และดึงข้อมูลหลายเรกคอร์ดจากอ็อบเจกต์โดยใช้คิวรี และดึงข้อมูลเรกคอร์ดโดยการเขียน REST API แบบกำหนดเองของ Apex เราจะใช้ออบเจ็กต์ Salesforce Standard Case สำหรับการสาธิต ไม่จำเป็นต้องสร้างบันทึกกรณีใดๆ ในแบ็กเอนด์ของ Salesforce เราใช้บันทึกกรณีมาตรฐานที่มีอยู่ซึ่งจัดทำโดย Salesforce

ขอแนะนำโต๊ะทำงาน

Workbench ไม่ใช่ผลิตภัณฑ์อย่างเป็นทางการของ Salesforce.com แต่เราจะใช้ Salesforce เพื่อดำเนินการจัดการข้อมูล เช่น เลือก แทรก เพิ่ม อัปเดต และลบ โดยเพียงแค่ลงชื่อเข้าใช้บัญชี Salesforce ของคุณ (รองรับทั้ง Sandbox และ Production) นี่คือเว็บไซต์อย่างเป็นทางการสำหรับเข้าสู่ระบบ Workbench ด้วย Salesforce: https://workbench.developerforce.com/login.php .

ณ ตอนนี้ ให้เก็บเวอร์ชัน API เป็นที่มีอยู่เท่านั้น และคลิกที่ปุ่ม “เข้าสู่ระบบด้วย Salesforce”









เราต้องการ REST Explorer ไปที่แท็บ 'ยูทิลิตี้' และคลิกที่ 'REST Explorer'







คุณจะเห็น UI ดังภาพประกอบต่อไปนี้ เราจำเป็นต้องเลือกใช้ GET เพื่อดึงบันทึกจาก Salesforce ในคำแนะนำทั้งหมดนี้ เราจำเป็นต้องระบุ URI ที่ดึงข้อมูลระเบียน Salesforce และคลิกปุ่ม 'ดำเนินการ'



ดึงบันทึกเฉพาะด้วย Salesforce ID

ตาม ID เรกคอร์ดของ Salesforce เราสามารถดึงข้อมูลเรกคอร์ดทั้งหมดของ Salesforce ได้ เราต้องตั้งค่า URI ดังนี้

/ บริการ / ข้อมูล / v56.0 / วัตถุ / objectAPINชื่อ / รหัส

ที่นี่ “objectAPIName” คืออ็อบเจ็กต์ Salesforce Standard/Custom และ “id” หมายถึง Salesforce ID

กลับ:

คุณจะได้รับการตอบสนองดิบ HTTP/1.1 200 OK ในรูปแบบ JSON ดังต่อไปนี้:

{
'คุณลักษณะ' : {
'พิมพ์' :
'url' :
} ,
'สนาม' : ค่า,
...
}

ตัวอย่าง:

ในตัวอย่างนี้ เราดึงเรคคอร์ดเคส 5005i00000W4GM5AAN

พิมพ์: / บริการ / ข้อมูล / v56.0 / วัตถุ / กรณี / 5005i00000W4GM5AAN

ผลลัพธ์:

เราจะเห็นว่าการตอบสนองถูกสร้างขึ้นในรูปแบบ JSON

เรายังสามารถดูผลลัพธ์ได้โดยตรงจากที่นี่:

ดึงข้อมูลหลายรายการด้วยแบบสอบถาม

ถึงเวลาเรียกข้อมูลหลายรายการจากออบเจกต์ Salesforce ก่อนหน้านี้ เราระบุ sojects ใน URI ที่นี่ เราจำเป็นต้องระบุแบบสอบถามที่ใช้แบบสอบถามเป็นพารามิเตอร์

URI: บริการ / ข้อมูล / v57.0 / สอบถาม / ? ถาม =SELECT+field1,field2,....+จาก+ObjectAPINชื่อ

เราจำเป็นต้องใช้ '+' เป็นตัวคั่นเพื่อรวมคำหลักในแบบสอบถาม ส่งคืนผลรวมขนาดและบันทึกในโฟลเดอร์ ชื่อโฟลเดอร์สำหรับแต่ละเรคคอร์ดคือ [รายการ 1],…[รายการ n]

ตัวอย่างที่ 1:
ลองส่งคืนเรกคอร์ดที่มี CaseNumber สถานะ ลำดับความสำคัญ และคำอธิบายจากออบเจกต์ Case

/ บริการ / ข้อมูล / v57.0 / สอบถาม / ? ถาม =SELECT+CaseNumber,Status,Priority,Description+from+Case

ผลลัพธ์:

เมื่อคุณคลิกที่ 'ขยายทั้งหมด' คุณจะเห็นระเบียนทั้งหมดที่มีแอตทริบิวต์และค่าต่างๆ

ให้ฉันแสดงบันทึกแรกและสุดท้าย:

ตัวอย่างที่ 2:
ขอส่งคืนเพียงสามระเบียนที่มีฟิลด์เดียวกันตามที่เห็นในตัวอย่างแรก

/ บริการ / ข้อมูล / v57.0 / สอบถาม / ? ถาม =SELECT+CaseNumber,Status,Priority,Description+from+Case+limit+ 2

ผลลัพธ์:
เรกคอร์ดสองเรกคอร์ดแรกที่มีอยู่ในวัตถุ Case จะถูกส่งกลับ

ตัวอย่างที่ 3:
มาระบุเงื่อนไข WHERE ในแบบสอบถามที่เลือกระเบียนที่มีสถานะ 'ใหม่'

/ บริการ / ข้อมูล / v57.0 / สอบถาม / ? ถาม =SELECT+CaseNumber,Status,Priority,Description+from+Case+where+ สถานะ = 'ใหม่'

ผลลัพธ์:

มีอยู่ห้ารายการที่มีสถานะ 'ใหม่'

ทรัพยากรส่วนที่เหลือที่กำหนดเองในเอเพ็กซ์

เราสามารถใช้ Salesforce Apex ที่ส่งคืนบันทึกจากออบเจกต์ Salesforce โดยระบุ URI ใน Workbench ในการเขียน REST ใน Apex เราต้องใช้คำอธิบายประกอบที่เข้าถึง REST API ในคลาส Apex ของคุณ ตรวจสอบให้แน่ใจว่าคลาส Apex ของเราต้องเป็นแบบคงที่ทั่วโลก

1. คำอธิบายประกอบ @RestResource

คำอธิบายประกอบนี้ใช้เพื่อเปิดใช้งานซึ่งแสดงคลาส Apex เป็นทรัพยากร REST ใช้ urlMapping เป็นพารามิเตอร์ที่ใช้เพื่อค้นหา URI ใน Workbench

ไวยากรณ์: @RestResource(urlMapping=’/Version/ApexClassName/’)

“เวอร์ชัน” คือเวอร์ชัน Workbench ของคุณ เช่น V56.0 และ “ApexClassName” คือคลาส Apex ของคุณที่เกี่ยวข้องกับทรัพยากร Rest API

2. @httpGet คำอธิบายประกอบ

คำอธิบายประกอบนี้ใช้เพื่อเปิดใช้งานซึ่งแสดงคลาส Apex เป็นทรัพยากร REST มันถูกเรียกเมื่อมีการส่งคำขอ HTTP GET ไปยังเซิร์ฟเวอร์และส่งคืนทรัพยากรที่ระบุ

ไวยากรณ์: @httpGet

ตัวอย่างที่ 1: พารามิเตอร์เดียว

เขียนคลาส Apex “RestApi_Get_Record.apxc” ที่เกี่ยวข้องกับเมธอด “Rest Get” เพื่อส่งคืน id, CaseNumber, สถานะ, ลำดับความสำคัญ และต้นทางจาก case จาก Case object

@ ทรัพยากรส่วนที่เหลือ ( การจับคู่ URL = '/v56.0/RestApi_Get_Record/' )
RestApi_Get_Record คลาสระดับโลก {

// REST - รับเมธอด
@ http รับ
กรณีคงทั่วโลก getCaseDetails ( ) {

// สร้างวัตถุ สำหรับ วัตถุกรณี
เคส case_obj = เคสใหม่ ( ) ;
แผนที่ < สตริงสตริง > paramsMap = RestContext.request.params;

// ได้รับ กรณี รหัส
สตริง caseid = paramsMap.get ( 'input_id' ) ;

// แบบสอบถาม SOQL ที่จะ กลับ รหัส ,CaseNumber,Status,Priority,Origin from Case from
// วัตถุกรณี
case_obj = [ เลือก รหัส ,CaseNumber,Status,Priority,Origin from Case โดยที่ Id =:caseid ] ;
กลับ case_obj;
}
}

URI และผลลัพธ์:

ไปที่ Workbench และไปที่ REST Explorer ส่งรหัสเป็น 5002t00000Pdzr2AAB ไปยังพารามิเตอร์ input_id

/ บริการ / จุดสูงสุด / v56.0 / RestApi_Get_Record / ? input_id =5002t00000Pdzr2AAB

คำอธิบาย:

  • สร้างวัตถุสำหรับกรณี 'case_obj'
  • รับพารามิเตอร์โดยใช้ RestContext.request.params
  • รับรหัสกรณีจากพารามิเตอร์ input_id และเก็บไว้ในตัวแปร caseid
  • เขียนแบบสอบถาม SOQL ที่ส่งคืน id, CaseNumber, สถานะ, ลำดับความสำคัญ, ต้นทางจาก case จาก case object ของ case “caseid”
  • ส่งคืนวัตถุเคส (case_obj)

ตัวอย่างที่ 2: หลายพารามิเตอร์

ใช้คลาส Apex ก่อนหน้าและรับพารามิเตอร์ 'สถานะ' พร้อมกับรหัส ระบุสองพารามิเตอร์นี้ใน Workbench URI ที่คั่นด้วย “&”

@ ทรัพยากรส่วนที่เหลือ ( การจับคู่ URL = '/v56.0/RestApi_Get_Record/' )
RestApi_Get_Record คลาสระดับโลก {

// REST - รับเมธอด
@ http รับ
กรณีคงทั่วโลก getCaseDetails ( ) {

// สร้างวัตถุ สำหรับ วัตถุกรณี
เคส case_obj = เคสใหม่ ( ) ;
แผนที่ < สตริงสตริง > id_param = RestContext.request.params;
แผนที่ < สตริงสตริง > status_param = RestContext.request.params;

// รับ id_param ลงใน case_id
สตริง case_id = id_param.get ( 'input_id' ) ;
// รับ status_param ลงใน case_status
สตริง case_status =status_param.get ( 'สถานะ' ) ;

case_obj = [ เลือก รหัส ,CaseNumber,Status,Priority,Origin from Case โดยที่ Id =:case_id และ Status =: case_status ] ;
กลับ case_obj;
}
}

URI และผลลัพธ์:

ไปที่ Workbench และไปที่ REST Explorer ส่ง input_id เป็น 5002t00000PdzqwAAB และสถานะเป็น “ปิด” ใน URI

/ บริการ / จุดสูงสุด / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB & สถานะ = ปิด

บทสรุป

เราได้กล่าวถึงสามสถานการณ์ในการเรียกข้อมูลระเบียน Salesforce ผ่าน Salesforce REST API โดยใช้ Workbench ในการส่งคืนเรกคอร์ดเฉพาะ เราจำเป็นต้องระบุ sObject โดยส่ง id เป็นพารามิเตอร์ใน URI ในทำนองเดียวกัน เราส่งพารามิเตอร์การสืบค้นเพื่อรับระเบียนเฉพาะ การใช้ Apex เราสามารถสร้างเมธอด 'Get' ของเราเองเพื่อเลือกเรคคอร์ดตามพารามิเตอร์เดียว/หลายตัว