Truy xuất bản ghi bằng Rest API trong Salesforce

Truy Xuat Ban Ghi Bang Rest Api Trong Salesforce



Trong hướng dẫn này, chúng tôi sẽ thảo luận cách truy xuất bản ghi Salesforce bằng API REST thông qua Workbench trong Salesforce. Là một phần của hướng dẫn này, chúng ta sẽ thảo luận cách sử dụng Workbench, tìm nạp các bản ghi cụ thể bằng sObject và tìm nạp nhiều bản ghi từ một đối tượng bằng cách sử dụng truy vấn và tìm nạp các bản ghi bằng cách viết API REST tùy chỉnh của Apex. Chúng tôi sẽ sử dụng đối tượng Trường hợp tiêu chuẩn của Salesforce để trình diễn. Không cần tạo bất kỳ bản ghi trường hợp nào trong phần phụ trợ của Salesforce. Chúng tôi sử dụng bản ghi trường hợp tiêu chuẩn hiện có do Salesforce cung cấp.

Giới thiệu bàn làm việc

Bàn làm việc không phải là sản phẩm chính thức của Salesforce.com. Nhưng chúng tôi sẽ sử dụng Salesforce để thực hiện các thao tác thao tác dữ liệu như chọn, chèn, nâng cấp, cập nhật và xóa bằng cách đăng nhập vào tài khoản Salesforce của bạn (hỗ trợ cả Sandbox và Production). Đây là trang web chính thức để đăng nhập Workbench với Salesforce: https://workbench.developerforce.com/login.php .

Hiện tại, hãy giữ phiên bản API ở trạng thái hiện có và nhấp vào nút “Đăng nhập bằng Salesforce”.









Chúng tôi cần REST Explorer. Điều hướng đến tab “tiện ích” và nhấp vào “REST Explorer”.







Bạn sẽ thấy giao diện người dùng như trong hình minh họa sau. Chúng tôi cần chọn GET để tìm nạp bản ghi từ Salesforce trong toàn bộ hướng dẫn này. Chúng tôi cần chỉ định URI tìm nạp các bản ghi Salesforce và nhấp vào nút “Thực thi”.



Truy xuất bản ghi cụ thể với ID Salesforce

Dựa trên ID bản ghi Salesforce, chúng tôi có thể tìm nạp toàn bộ bản ghi của Salesforce. Chúng ta cần đặt URI như sau:

/ dịch vụ / dữ liệu / v56.0 / đối tượng / đối tượngAPIName / nhận dạng

Ở đây, “objectAPIName” là đối tượng Tiêu chuẩn/Tùy chỉnh của Salesforce và “id” đề cập đến ID Salesforce.

Trở lại:

Bạn sẽ nhận được phản hồi thô HTTP/1.1 200 OK ở định dạng JSON như sau:

{
'thuộc tính' : {
'kiểu' :
'url' :
} ,
'cánh đồng' : Giá trị,
...
}

Ví dụ:

Trong ví dụ này, chúng tôi tìm nạp bản ghi trường hợp 5005i00000W4GM5AAN.

KIỂU: / dịch vụ / dữ liệu / v56.0 / đối tượng / Trường hợp / 5005i00000W4GM5AAN

Kết quả:

Chúng ta có thể thấy rằng phản hồi được tạo ở định dạng JSON.

Chúng tôi cũng có thể xem kết quả trực tiếp từ đây:

Truy xuất nhiều bản ghi bằng truy vấn

Đã đến lúc truy xuất nhiều bản ghi từ đối tượng Salesforce. Trước đây, chúng tôi đã chỉ định các đối tượng trong URI. Ở đây, chúng ta cần chỉ định một truy vấn lấy truy vấn làm tham số.

URI: dịch vụ / dữ liệu / v57.0 / truy vấn / ? q =SELECT+field1,field2,....+từ+ObjectAPIName

Chúng ta cần sử dụng “+” làm dấu phân cách để nối các từ khóa trong truy vấn. Nó trả về kích thước tổng và các bản ghi trong một thư mục. Tên thư mục cho mỗi bản ghi là [Item 1],…[Item n].

Ví dụ 1:
Hãy trả về các bản ghi bao gồm Số trường hợp, trạng thái, mức độ ưu tiên và mô tả từ đối tượng Trường hợp.

/ dịch vụ / dữ liệu / v57.0 / truy vấn / ? q =CHỌN+Số trường hợp,Trạng thái,Mức độ ưu tiên,Mô tả+từ+Trường hợp

Kết quả:

Khi bạn nhấp vào “Mở rộng tất cả”, bạn sẽ thấy tất cả các bản ghi cùng với các thuộc tính và giá trị của nó.

Hãy để tôi hiển thị các bản ghi đầu tiên và cuối cùng:

Ví dụ 2:
Hãy chỉ trả về ba bản ghi có cùng trường như đã thấy trong ví dụ đầu tiên.

/ dịch vụ / dữ liệu / v57.0 / truy vấn / ? q =CHỌN+Số trường hợp,Trạng thái,Mức độ ưu tiên,Mô tả+từ+Trường hợp+giới hạn+ 2

Kết quả:
Hai bản ghi đầu tiên có trong đối tượng Trường hợp được trả về.

Ví dụ 3:
Hãy chỉ định điều kiện WHERE trong truy vấn chọn các bản ghi có trạng thái “Mới”.

/ dịch vụ / dữ liệu / v57.0 / truy vấn / ? q =CHỌN+Số trường hợp,Trạng thái,Mức độ ưu tiên,Mô tả+từ+Trường hợp+ở đâu+ Trạng thái = 'Mới'

Kết quả:

Năm bản ghi tồn tại với trạng thái 'Mới'.

Tài nguyên nghỉ ngơi tùy chỉnh trong Apex

Chúng ta có thể sử dụng Salesforce Apex để trả về bản ghi từ đối tượng Salesforce bằng cách chỉ định URI trong Workbench. Để viết REST trong Apex, chúng tôi phải sử dụng một số chú thích truy cập API REST trong lớp Apex của bạn. Đảm bảo rằng lớp Apex của chúng ta phải tĩnh trên toàn cầu.

1. Chú thích @RestResource

Chú thích này được sử dụng để bật hiển thị lớp Apex dưới dạng tài nguyên REST. Nó lấy urlMapping làm tham số được sử dụng để định vị URI trong Workbench.

Cú pháp: @RestResource(urlMapping=’/Version/ApexClassName/’)

“Phiên bản” là phiên bản Workbench của bạn như V56.0 và “ApexClassName” là lớp Apex của bạn có liên quan đến các tài nguyên API còn lại.

2. Chú thích @HttpGet

Chú thích này được sử dụng để bật hiển thị lớp Apex dưới dạng tài nguyên REST. Nó được gọi khi một yêu cầu HTTP GET được gửi đến máy chủ và trả về tài nguyên đã chỉ định.

Cú pháp: @httpGet

Ví dụ 1: Tham số đơn

Viết lớp Apex “RestApi_Get_Record.apxc” bao gồm phương thức “Rest Get” để trả về id, CaseNumber, trạng thái, mức độ ưu tiên và nguồn gốc từ trường hợp từ đối tượng Trường hợp.

@ Phần còn lại Tài nguyên ( ánh xạ url = '/v56.0/RestApi_Get_Record/' )
lớp toàn cầu RestApi_Get_Record {

// REST - Nhận phương thức
@ httpNhận
trường hợp tĩnh toàn cầu getCaseDetails ( ) {

// Tạo đối tượng trường hợp đối tượng
Trường hợp case_obj = Trường hợp mới ( ) ;
Bản đồ < Chuỗi, Chuỗi > paramsMap = RestContext.request.params;

// Nhận được trường hợp nhận dạng
Chuỗi caseid =paramsMap.get ( 'input_id' ) ;

// Truy vấn SOQL sẽ trở lại nhận dạng ,Số hồ sơ,Trạng thái,Mức độ ưu tiên,Gốc từ Trường hợp từ
// đối tượng Trường hợp
trường hợp_obj = [ lựa chọn nhận dạng ,Số trường hợp,Trạng thái,Mức độ ưu tiên,Gốc từ trường hợp trong đó Id =:caseid ] ;
trở lại trường hợp_obj;
}
}

URI và kết quả:

Chuyển đến Bàn làm việc và điều hướng đến REST Explorer. Chuyển id là 5002t00000Pdzr2AAB cho tham số input_id.

/ dịch vụ / đỉnh cao / v56.0 / RestApi_Get_Record / ? input_id =5002t00000Pdzr2AAB

Giải trình:

  • Tạo một đối tượng cho trường hợp “case_obj”.
  • Nhận thông số bằng cách sử dụng RestContext.request.params.
  • Lấy id trường hợp từ tham số input_id và lưu trữ trường hợp này trong biến caseid.
  • Viết truy vấn SOQL trả về id, CaseNumber, trạng thái, mức độ ưu tiên, nguồn gốc từ trường hợp từ đối tượng Case của trường hợp “caseid”.
  • Trả về đối tượng trường hợp (case_obj).

Ví dụ 2: Nhiều thông số

Sử dụng Lớp Apex trước đó và nhận thông số 'Trạng thái' cùng với id. Chỉ định hai tham số này trong Workbench URI được phân tách bằng “&”.

@ Phần còn lại Tài nguyên ( ánh xạ url = '/v56.0/RestApi_Get_Record/' )
lớp toàn cầu RestApi_Get_Record {

// REST - Nhận phương thức
@ httpNhận
trường hợp tĩnh toàn cầu getCaseDetails ( ) {

// Tạo đối tượng trường hợp đối tượng
Trường hợp case_obj = Trường hợp mới ( ) ;
Bản đồ < Chuỗi, Chuỗi > id_param = RestContext.request.params;
Bản đồ < Chuỗi, Chuỗi > status_param = RestContext.request.params;

// Lấy id_param vào case_id
Chuỗi case_id = id_param.get ( 'input_id' ) ;
// Lấy status_param vào case_status
Chuỗi case_status = status_param.get ( 'trạng thái' ) ;

trường hợp_obj = [ lựa chọn nhận dạng ,CaseNumber,Status,Priority,Origin from Case trong đó Id =:case_id và Status =:case_status ] ;
trở lại trường hợp_obj;
}
}

URI và kết quả:

Chuyển đến Bàn làm việc và điều hướng đến REST Explorer. Chuyển input_id dưới dạng 5002t00000PdzqwAAB và trạng thái là “Đã đóng” trong URI.

/ dịch vụ / đỉnh cao / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB & trạng thái =Đã đóng

Phần kết luận

Chúng ta đã thảo luận về ba kịch bản truy xuất bản ghi Salesforce thông qua API REST của Salesforce bằng Workbench. Để trả về một bản ghi cụ thể, chúng ta cần chỉ định sObject bằng cách chuyển id dưới dạng tham số trong URI. Tương tự, chúng tôi chuyển các tham số truy vấn để lấy các bản ghi cụ thể. Sử dụng Apex, chúng ta có thể tạo phương thức “Nhận” của riêng mình để chọn bản ghi dựa trên một/nhiều tham số.