Dapatkan Rekod Menggunakan Rest API dalam Salesforce

Dapatkan Rekod Menggunakan Rest Api Dalam Salesforce



Dalam panduan ini, kami akan membincangkan cara untuk mendapatkan semula rekod Salesforce dengan REST API melalui Workbench dalam Salesforce. Sebagai sebahagian daripada panduan ini, kami akan membincangkan cara menggunakan Workbench, mengambil rekod tertentu menggunakan sObject dan mengambil berbilang rekod daripada objek menggunakan pertanyaan dan mengambil rekod dengan menulis API REST tersuai Apex. Kami akan menggunakan objek Salesforce Standard Case untuk demonstrasi. Tidak perlu membuat sebarang rekod kes dalam bahagian belakang Salesforce. Kami menggunakan rekod kes standard sedia ada yang disediakan oleh Salesforce.

Memperkenalkan Meja Kerja

Workbench bukanlah produk rasmi Salesforce.com. Tetapi kami akan menggunakan Salesforce untuk melaksanakan operasi manipulasi data seperti pilih, masukkan, tambah, kemas kini dan padam dengan hanya log masuk ke akaun Salesforce anda (menyokong kedua-dua Sandbox dan Production). Ini ialah tapak web rasmi untuk log masuk Workbench dengan Salesforce: https://workbench.developerforce.com/login.php .

Buat masa ini, kekalkan versi API seperti sedia ada sahaja dan klik pada butang 'Log Masuk dengan Salesforce'.









Kami memerlukan Penjelajah REST. Navigasi ke tab 'utiliti' dan klik pada 'REST Explorer'.







Anda akan melihat UI seperti dalam ilustrasi berikut. Kami perlu memilih GET untuk mengambil rekod daripada Salesforce dalam keseluruhan panduan ini. Kami perlu menentukan URI yang mengambil rekod Salesforce dan klik butang 'Laksanakan'.



Dapatkan Rekod Khusus dengan ID Salesforce

Berdasarkan ID rekod Salesforce, kami boleh mengambil keseluruhan rekod Salesforce. Kita perlu menetapkan URI seperti berikut:

/ perkhidmatan / data / v56.0 / objek / nama objekAPINA / ID

Di sini, 'objectAPINAme' ialah objek Salesforce Standard/Custom dan 'id' merujuk kepada Salesforce ID.

kembali:

Anda akan mendapat respons mentah HTTP/1.1 200 OK dalam format JSON seperti berikut:

{
'atribut' : {
'jenis' :
'url' :
} ,
'padang' : Nilai,
...
}

Contoh:

Dalam contoh ini, kami mengambil rekod kes 5005i00000W4GM5AAN.

JENIS: / perkhidmatan / data / v56.0 / objek / Kes / 5005i00000W4GM5AAN

Keputusan:

Kita dapat melihat bahawa respons dijana dalam format JSON.

Kami juga boleh melihat keputusan terus dari sini:

Dapatkan Berbilang Rekod dengan Pertanyaan

Tiba masanya untuk mendapatkan semula berbilang rekod daripada objek Salesforce. Sebelum ini, kami menentukan objek dalam URI. Di sini, kita perlu menentukan pertanyaan yang mengambil pertanyaan sebagai parameter.

URI: perkhidmatan / data / v57.0 / pertanyaan / ? q =SELECT+field1,field2,....+dari+ObjectAPINAme

Kita perlu menggunakan '+' sebagai pembatas untuk menyertai kata kunci dalam pertanyaan. Ia mengembalikan totalSize dan rekod dalam folder. Nama folder untuk setiap rekod ialah [Item 1],…[Item n].

Contoh 1:
Mari kita kembalikan rekod yang termasuk CaseNumber, status, keutamaan dan perihalan daripada objek Case.

/ perkhidmatan / data / v57.0 / pertanyaan / ? q =PILIH+Nombor Kes,Status,Keutamaan,Penerangan+dari+Kes

Keputusan:

Apabila anda mengklik pada 'Kembangkan Semua', anda akan melihat semua rekod dengan atribut dan nilainya.

Biar saya tunjukkan rekod pertama dan terakhir:

Contoh 2:
Mari kita kembalikan hanya tiga rekod dengan medan yang sama seperti yang dilihat dalam contoh pertama.

/ perkhidmatan / data / v57.0 / pertanyaan / ? q =PILIH+Nombor Kes,Status,Keutamaan,Penerangan+dari+had+Kes+ 2

Keputusan:
Dua rekod pertama yang terdapat dalam objek Case dikembalikan.

Contoh 3:
Mari tentukan keadaan WHERE dalam pertanyaan yang memilih rekod dengan status 'Baharu'.

/ perkhidmatan / data / v57.0 / pertanyaan / ? q =PILIH+Nombor Kes,Status,Keutamaan,Penerangan+dari+Kes+di mana+ Status = 'Baru'

Keputusan:

Lima rekod wujud dengan status 'Baharu'.

Sumber Rehat Tersuai di Apex

Kita boleh menggunakan Salesforce Apex yang mengembalikan rekod daripada objek Salesforce dengan menentukan URI dalam Workbench. Untuk menulis REST dalam Apex, kami perlu menggunakan beberapa anotasi yang mengakses API REST dalam kelas Apex anda. Pastikan kelas Apex kami mestilah statik secara global.

1. @RestResource Anotasi

Anotasi ini digunakan untuk membolehkan yang mendedahkan kelas Apex sebagai sumber REST. Ia mengambil urlMapping sebagai parameter yang digunakan untuk mencari URI dalam Workbench.

Sintaks: @RestResource(urlMapping=’/Version/ApexClassName/’)

'Versi' ialah versi Workbench anda seperti V56.0 dan 'ApexClassName' ialah kelas Apex anda di mana sumber Rest API terlibat.

2. @HttpGet Anotasi

Anotasi ini digunakan untuk membolehkan yang mendedahkan kelas Apex sebagai sumber REST. Ia dipanggil apabila permintaan HTTP GET dihantar ke pelayan dan mengembalikan sumber yang ditentukan.

Sintaks: @httpGet

Contoh 1: Param Tunggal

Tulis kelas Apex 'RestApi_Get_Record.apxc' yang melibatkan kaedah 'Rehat Dapatkan' untuk mengembalikan id, CaseNumber, status, keutamaan dan asal daripada kes daripada objek Kes.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
RestApi_Get_Record bertaraf global {

// REHAT - Dapatkan Kaedah
@ httpGet
Kes statik global getCaseDetails ( ) {

// Cipta objek untuk Objek kes
Case case_obj = Kes baharu ( ) ;
Peta < Rentetan, Rentetan > paramsMap = RestContext.request.params;

// Dapatkan kes ID
String caseid =paramsMap.get ( 'input_id' ) ;

// Pertanyaan SOQL yang akan kembali ID ,Nombor Kes,Status,Keutamaan,Asal dari Kes daripada
// objek Kes
case_obj = [ pilih ID ,Nombor Kes,Status,Keutamaan,Asal dari Kes di mana Id =:caseid ] ;
kembali case_obj;
}
}

URI dan Keputusan:

Pergi ke Workbench dan navigasi ke REST Explorer. Hantar id sebagai 5002t00000Pdzr2AAB kepada input_id param.

/ perkhidmatan / apexrest / v56.0 / RestApi_Get_Record / ? input_id =5002t00000Pdzr2AAB

Penjelasan:

  • Cipta objek untuk kes 'case_obj'.
  • Dapatkan params menggunakan RestContext.request.params.
  • Dapatkan id kes daripada input_id param dan simpan ini dalam pembolehubah caseid.
  • Tulis pertanyaan SOQL yang mengembalikan id, CaseNumber, status, keutamaan, asal daripada kes daripada objek Kes kes 'caseid'.
  • Kembalikan objek kes (case_obj).

Contoh 2: Pelbagai Param

Gunakan Kelas Apex sebelumnya dan dapatkan param 'Status' bersama id. Tentukan dua param ini dalam URI Meja Kerja yang dipisahkan oleh '&'.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
RestApi_Get_Record bertaraf global {

// REHAT - Dapatkan Kaedah
@ httpGet
Kes statik global getCaseDetails ( ) {

// Cipta objek untuk Objek kes
Case case_obj = Kes baharu ( ) ;
Peta < Rentetan, Rentetan > id_param = RestContext.request.params;
Peta < Rentetan, Rentetan > status_param = RestContext.request.params;

// Dapatkan id_param ke dalam case_id
String case_id = id_param.get ( 'input_id' ) ;
// Dapatkan status_param ke dalam case_status
String case_status =status_param.get ( 'status' ) ;

case_obj = [ pilih ID ,Nombor Kes,Status,Keutamaan,Asal dari Kes di mana Id =:id_kes dan Status =:status_kes ] ;
kembali case_obj;
}
}

URI dan Keputusan:

Pergi ke Workbench dan navigasi ke REST Explorer. Lulus input_id sebagai 5002t00000PdzqwAAB dan status sebagai 'Tertutup' dalam URI.

/ perkhidmatan / apexrest / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB & status =Ditutup

Kesimpulan

Kami membincangkan tiga senario untuk mendapatkan semula rekod Salesforce melalui Salesforce REST API menggunakan Workbench. Untuk mengembalikan rekod tertentu, kita perlu menentukan sObject dengan menghantar id sebagai parameter dalam URI. Begitu juga, kami lulus parameter pertanyaan untuk mendapatkan rekod tertentu. Menggunakan Apex, kami boleh mencipta kaedah 'Dapatkan' kami sendiri untuk memilih rekod berdasarkan param tunggal/berbilang.