워크벤치 소개
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, 상태, 우선 순위 및 설명을 포함하는 레코드를 반환해 보겠습니다.
결과:
'모두 확장'을 클릭하면 해당 속성 및 값과 함께 모든 레코드가 표시됩니다.
첫 번째와 마지막 레코드를 보여 드리겠습니다.
예 2:
첫 번째 예에서 본 것과 같은 필드가 있는 세 개의 레코드만 반환해 보겠습니다.
결과:
Case 개체에 있는 처음 두 개의 레코드가 반환됩니다.
예 3:
'New' 상태의 레코드를 선택하는 쿼리에 WHERE 조건을 지정해 보겠습니다.
결과:
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' 방법을 만들 수 있습니다.