Salesforce에서 Rest API를 사용하여 레코드 검색

Salesforceeseo Rest Apileul Sayonghayeo Lekodeu Geomsaeg



이 가이드에서는 Salesforce의 Workbench를 통해 REST API로 Salesforce 레코드를 검색하는 방법에 대해 설명합니다. 이 가이드의 일부로 Workbench를 사용하고, sObject를 사용하여 특정 레코드를 가져오고, 쿼리를 사용하여 개체에서 여러 레코드를 가져오고, Apex 사용자 정의 REST API를 작성하여 레코드를 가져오는 방법에 대해 설명합니다. 데모를 위해 Salesforce Standard Case 개체를 활용합니다. Salesforce 백엔드에서 사례 레코드를 만들 필요가 없습니다. Salesforce에서 제공하는 기존 표준 케이스 레코드를 사용합니다.

워크벤치 소개

Workbench는 공식 Salesforce.com 제품이 아닙니다. 그러나 Salesforce를 활용하여 Salesforce 계정에 로그인하기만 하면 선택, 삽입, upsert, 업데이트 및 삭제와 같은 데이터 조작 작업을 수행할 것입니다(Sandbox 및 Production 모두 지원). 다음은 Salesforce로 Workbench에 로그인하는 공식 웹 사이트입니다. https://workbench.developerforce.com/login.php .

지금은 기존 API 버전만 유지하고 'Salesforce로 로그인' 버튼을 클릭합니다.









REST Explorer가 필요합니다. '유틸리티' 탭으로 이동하여 'REST 탐색기'를 클릭합니다.







다음 그림과 같은 UI가 표시됩니다. 이 전체 가이드에서 Salesforce에서 레코드를 가져오려면 GET을 선택해야 합니다. Salesforce 레코드를 가져오는 URI를 지정하고 '실행' 버튼을 클릭해야 합니다.



Salesforce ID로 특정 레코드 검색

Salesforce 레코드 ID를 기반으로 Salesforce의 전체 레코드를 가져올 수 있습니다. 다음과 같이 URI를 설정해야 합니다.

/ 서비스 / 데이터 / v56.0 / 객체 / 객체 API 이름 / ID

여기서 'objectAPIName'은 Salesforce 표준/사용자 정의 개체이고 'id'는 Salesforce ID를 나타냅니다.

반품:

다음과 같이 JSON 형식의 HTTP/1.1 200 OK 원시 응답을 받게 됩니다.

{
'속성' : {
'유형' :
'URL' :
} ,
'필드' : 값,
...
}

예:

이 예에서는 5005i00000W4GM5AAN 사례 레코드를 가져옵니다.

유형: / 서비스 / 데이터 / v56.0 / 객체 / 사례 / 5005i00000W4GM5AAN

결과:

응답이 JSON 형식으로 생성된 것을 볼 수 있습니다.

여기에서 직접 결과를 볼 수도 있습니다.

쿼리로 여러 레코드 검색

Salesforce 개체에서 여러 레코드를 검색할 때입니다. 이전에는 URI에 개체를 지정했습니다. 여기에서 쿼리를 매개변수로 사용하는 쿼리를 지정해야 합니다.

URI: 서비스 / 데이터 / v57.0 / 질문 / ? =SELECT+field1,field2,....+from+ObjectAPI이름

쿼리에서 키워드를 결합하려면 '+'를 구분 기호로 사용해야 합니다. 폴더의 totalSize 및 레코드를 반환합니다. 각 레코드의 폴더 이름은 [항목 1],…[항목 n]입니다.

예 1:
Case 개체에서 CaseNumber, 상태, 우선 순위 및 설명을 포함하는 레코드를 반환해 보겠습니다.

/ 서비스 / 데이터 / v57.0 / 질문 / ? =SELECT+케이스번호,상태,우선순위,설명+에서+케이스

결과:

'모두 확장'을 클릭하면 해당 속성 및 값과 함께 모든 레코드가 표시됩니다.

첫 번째와 마지막 레코드를 보여 드리겠습니다.

예 2:
첫 번째 예에서 본 것과 같은 필드가 있는 세 개의 레코드만 반환해 보겠습니다.

/ 서비스 / 데이터 / v57.0 / 질문 / ? =SELECT+케이스 번호,상태,우선 순위,설명+에서+케이스+제한+ 2

결과:
Case 개체에 있는 처음 두 개의 레코드가 반환됩니다.

예 3:
'New' 상태의 레코드를 선택하는 쿼리에 WHERE 조건을 지정해 보겠습니다.

/ 서비스 / 데이터 / v57.0 / 질문 / ? =SELECT+케이스 번호,상태,우선 순위,설명+에서+케이스+여기서+ 상태 = '새로운'

결과:

5개의 레코드가 '신규' 상태로 존재합니다.

Apex의 사용자 정의 나머지 리소스

Workbench에서 URI를 지정하여 Salesforce 개체에서 레코드를 반환하는 Salesforce Apex를 활용할 수 있습니다. Apex에서 REST를 작성하려면 Apex 클래스에서 REST API에 액세스하는 일부 주석을 활용해야 합니다. Apex 클래스가 전역적으로 정적이어야 합니다.

1. @RestResource 주석

이 주석은 Apex 클래스를 REST 리소스로 노출하는 것을 활성화하는 데 사용됩니다. Workbench에서 URI를 찾는 데 사용되는 매개변수로 urlMapping을 사용합니다.

구문: @RestResource(urlMapping='/Version/ApexClassName/')

'버전'은 V56.0과 같은 Workbench 버전이고 'ApexClassName'은 Rest API 리소스가 관련된 Apex 클래스입니다.

2. @HttpGet 주석

이 주석은 Apex 클래스를 REST 리소스로 노출하는 것을 활성화하는 데 사용됩니다. HTTP GET 요청이 서버로 전송되고 지정된 리소스를 반환할 때 호출됩니다.

구문: @httpGet

예 1: 단일 매개변수

케이스 개체에서 케이스의 ID, 케이스 번호, 상태, 우선 순위 및 출처를 반환하는 'Rest Get' 메서드를 포함하는 'RestApi_Get_Record.apxc' Apex 클래스를 작성합니다.

@ RestResource ( URL매핑 = '/v56.0/RestApi_Get_Record/' )
글로벌 클래스 RestApi_Get_Record {

// REST - 메서드 가져오기
@ httpGet
전역 정적 케이스 getCaseDetails ( ) {

// 개체 만들기 ~을 위한 케이스 개체
케이스 case_obj = 새 케이스 ( ) ;
지도 < 문자열, 문자열 > paramsMap = RestContext.request.params;

// 가져오기 사례 ID
문자열 caseid =paramsMap.get ( 'input_id' ) ;

// SOQL 쿼리는 반품 ID ,CaseNumber,Status,Priority,Origin from Case from
// 케이스 개체
case_obj = [ 선택하다 ID ,CaseNumber,Status,Priority,Origin from Case where Id =:caseid ] ;
반품 case_obj;
}
}

URI 및 결과:

Workbench로 이동하여 REST Explorer로 이동합니다. ID를 5002t00000Pdzr2AAB로 input_id 매개변수에 전달합니다.

/ 서비스 / 정점 / v56.0 / RestApi_Get_Record / ? input_id =5002t00000Pdzr2AAB

설명:

  • 'case_obj' 사례에 대한 개체를 만듭니다.
  • RestContext.request.params를 사용하여 매개변수를 가져옵니다.
  • param input_id에서 케이스 ID를 가져와 케이스 ID 변수에 저장합니다.
  • 'caseid' 사례의 사례 개체에서 사례의 id, 사례 번호, 상태, 우선 순위, 출처를 반환하는 SOQL 쿼리를 작성합니다.
  • 케이스 객체(case_obj)를 반환합니다.

예 2: 다중 매개변수

이전 Apex 클래스를 활용하고 ID와 함께 'Status' 매개변수를 가져옵니다. '&'로 구분되는 Workbench URI에 이 두 매개변수를 지정하십시오.

@ RestResource ( URL매핑 = '/v56.0/RestApi_Get_Record/' )
글로벌 클래스 RestApi_Get_Record {

// REST - 메서드 가져오기
@ httpGet
전역 정적 케이스 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 = [ 선택하다 ID ,CaseNumber,Status,Priority,Id =:case_id 및 Status =: case_status인 케이스의 출처 ] ;
반품 case_obj;
}
}

URI 및 결과:

Workbench로 이동하여 REST Explorer로 이동합니다. URI에서 input_id를 5002t00000PdzqwAAB로 전달하고 상태를 'Closed'로 전달합니다.

/ 서비스 / 정점 / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB & 상태 =폐점

결론

Workbench를 사용하여 Salesforce REST API를 통해 Salesforce 레코드를 검색하는 세 가지 시나리오에 대해 논의했습니다. 특정 레코드를 반환하려면 URI에서 id를 매개 변수로 전달하여 sObject를 지정해야 합니다. 마찬가지로 쿼리 매개변수를 전달하여 특정 레코드를 가져옵니다. Apex를 사용하여 단일/다중 매개변수를 기반으로 레코드를 선택하는 고유한 'Get' 방법을 만들 수 있습니다.