Salesforce REST API는 클라이언트 애플리케이션이
Salesforce 데이터에 접근하고 조작할 수 있게 해주는 매우 강력한 도구입니다.
이 글에서는 Salesforce REST API를 통해 데이터를 받아오는 방법을 개념 설명과
함께 단계별로 자세히 안내하겠습니다.
주요 개념
Salesforce REST API는 HTTP 메소드를 사용하여 Salesforce 데이터에 접근할 수 있는 인터페이스입니다.
일반적으로 JSON 형식으로 데이터를 주고받으며, Salesforce 데이터를 안전하게 접근하기 위해 OAuth 2.0 인증 방식을 사용합니다.
OAuth 2.0 인증 : REST API 호출 전에 Salesforce로부터 액세스 토큰을 받아야 합니다.
REST API 엔드포인트 호출 : 액세스 토큰을 사용하여 필요한 데이터를 가져옵니다.
응답 처리 : 받은 데이터를 처리합니다.
이제 차례대로 단계별로 알려드리겠습니다.
1단계 : OAuth 2.0 인증
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
public class SalesforceOAuth {
public static void main(String[] args) {
try {
String authUrl = "https://login.salesforce.com/services/oauth2/token";
String clientId = "YOUR_CLIENT_ID";
String clientSecret = "YOUR_CLIENT_SECRET";
String username = "YOUR_USERNAME";
String password = "YOUR_PASSWORD";
URL url = new URL(authUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
String payload = "grant_type=password"
+ "&client_id=" + clientId
+ "&client_secret=" + clientSecret
+ "&username=" + username
+ "&password=" + password;
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
os.write(payload.getBytes());
os.flush();
os.close();
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
Scanner scanner = new Scanner(conn.getInputStream());
String responseBody = scanner.useDelimiter("\\A").next();
scanner.close();
System.out.println("Response: " + responseBody);
// JSON 파싱하여 액세스 토큰과 인스턴스 URL 추출
} else {
System.out.println("POST request not worked");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
위 코드를 통해서 우리는 엑세스 TOKEN과 인스턴스 URL을 얻을 수 있습니다.
이 토큰은 이후에 REST API 호출에 사용됩니다.
2단계 : REST API 엔드포인트 호출
액세스 토큰을 사용하여 Salesforce 데이터에 접근합니다.
예를 들어, 계정 데이터를 가져오는 예제입니다.
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
public class SalesforceRestApi {
public static void main(String[] args) {
try {
String accessToken = "YOUR_ACCESS_TOKEN";
String instanceUrl = "YOUR_INSTANCE_URL";
String query = "SELECT Id, Name FROM Account LIMIT 10";
String queryUrl = instanceUrl + "/services/data/v52.0/query?q=" + query;
URL url = new URL(queryUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", "Bearer " + accessToken);
conn.setRequestProperty("Content-Type", "application/json");
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
Scanner scanner = new Scanner(conn.getInputStream());
String responseBody = scanner.useDelimiter("\\A").next();
scanner.close();
System.out.println("Response: " + responseBody);
// JSON 파싱하여 필요한 데이터 추출
} else {
System.out.println("GET request not worked");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
위 예제에서는 SELECT Id, Name FROM Account LIMIT 10 쿼리를 사용하여 10개의 계정 데이터를 가져옵니다.
가져온 데이터는 JSON 형식으로 반환되며, 각 계정의 ID와 이름을 출력합니다.
3단계 : 응답 처리
응답 받은 데이터를 활용하여 필요한 처리를 수행합니다.
위 예제에서는 가져온 계정 데이터를 출력하는 코드입니다.
이 과정을 통해 Salesforce에서 REST API를 통해 데이터를 받아오는 방법을 이해할 수 있습니다.
추가적으로 Salesforce REST API에 대한 자세한 정보는 Salesforce 개발자 문서를 참고하시길 바랍니다!
'Salesforce' 카테고리의 다른 글
Record Triggered Flow에서 Record ID 가져오는 법 (0) | 2024.06.13 |
---|---|
Campaign.. 마케팅 기능인건 알겠는데... (0) | 2024.06.13 |
Opportunity(기회)란 무엇인가? (0) | 2024.06.13 |
Lead(잠재고객)이란 무엇인가? (0) | 2024.06.13 |
Apex 프로그래밍 언어 소개 및 간단한 예제 (0) | 2024.06.08 |