REST(Representational State Transfer)는 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일이다. REST API는 인터넷 식별자(URI)와 HTTP 프로토콜을 기반으로 하며, 브라우저 간 호환성이 좋은 JSON을 사용하여 데이터를 포맷한다.
REST 방식의 API라면, 클라이언트-서버 모델로 구축되었다는 것을 의미하며, 정보의 페이로드(실제 전달하려는 내용)가 두 지점 사이를 왕복하게 된다.
또한 REST API는 단일한 인터페이스를 사용하기 때문에, 해당 API를 사용하는 애플리케이션들이 동일한 경로를 통해서 접속해야하고, 방식이 단순하다. 이 부분은 장점이 될수도, 단점이 될 수도 있다는데..(이건 더 공부해야 할 듯)
REST API는 내 눈엔 링크처럼 생긴 URI(Uniform Resource Idetifier)로 식별할 수 있고, HTTP method를 사용하여 엑세스할 수 있다.
REST API 구성요소
postman과 연결하여 Salesforce REST API 리소스 공유를 할 수 있다. 연결방법은 요기 참조!
GET- 이 API 호출에 사용되는 HTTP 메서드{{_endpoint}}- 요청이 수행될 주소. Salesforce에 연결하기 위해 Trailhead Playground의 URL을 variable의 _endpoint 필드에 추가했다./services/data- REST API 요청을 하고 있음을 지정/ v {{version}}- API 버전 번호/sobjects- sObject 뒤의 리소스에 액세스하도록 지정/:SOBJECT_API_Name- 작업 중인 sObject를 지정. 이 경우엔Account/describe- 어떤 action인지 지정
- query문도 GET API로 호출 가능
SELECT Name From Account WHERE ShippingCity = 'Melbourne'
REST API는 JSON과 XML을 둘 다 지원하기 때문에 두 경우의 response를 다 볼 수 있다. XML response를 확인하고 싶은 경우 Headers에 다음과 같이 입력하면 됨!

standard와 동일하게, required한 필드값을 채우지 않고 POST를 API를 요청하면 error message가 Reqeust로 반환된다.
SOAP(Simple Object Access Protocol)는 그 자체로 메시지 교환 프로토콜이며, 네트워크 상에서 XML 형태의 메시지를 전송하는 방식을 제공한다. 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들이 정해져있기 때문에 조금 더 복잡하다.
XML? SOAP? WSDL?
SOAP는 XML 기반의 메시지 교환 프로토콜로, 네트워크 상에서 XML 형태의 메시지를 전송하는 방식을 제공한다.WSDL은 SOAP에서 사용되는 메시지의 구조와 타입 정보를 기술하기 위해서 사용되며, WSDL은 SOAP 메시지의 구조와 타입 정보 뿐 아니라, 웹 서비스의 인터페이스와 데이터 타입, 주소 정보 등을 명세하는데 사용된다.
SOAP는 SSL도 지원하고 WS-Security라는 자체 표준 보안 기능도 가지고 있기 때문에 보안수준이 엄격하다. 또한 REST API는 표준화된 메시징 시스템이 갖춰져 있지 않기 때문에 통신 장애가 있을 경우 재시도를 통해서만 조치할 수 있다는 데 반해, SOAP 표준에는 로직이 규정되어 있어 처음부터 끝까지 신뢰성을 제공한다.
또한 ACID를 준수한다. 따라서 데이터의 변형을 줄여주고 DB 상호작용에 대해 사전에 명확하게 규정하기 때문에 데이터의 무결성을 지켜준다는 점에서 보수적이다.
이러한 표준들로 인해서 오버헤드가 많기는 하지만, 보안, 트랜잭션, ACID를 준수해야하는 금융 정보를 주고 받아야 하거나 기업용 애플리케이션을 작업하는데 이상적이다.
특정 단일 org에서 사용하기에 최적화 되어 있다. 형식이 딱딱한 편! 따라서 org의 메타데이터를 변경할 때마다 WSDL 파일을 다시 생성해야 한다.
더 많은 org에서 사용 가능하다.
(솔직히 뭔 말인지 모르겠다...)

Enterpfise WSDL을 생성한 뒤 뜨는 브라우저를 ctrl+s 하여 바탕화면에 저장해준다.

New SOAP Project 눌러서 xml파일 저장한 경로를 입력해준뒤 ok를 누르면 XML형식으로 작성된 WSDL 파일을 읽어서 API 작업들을 확인할 수 있다. 각 작업에는 HTTPS 엔드포인트와 SOAP 메시지가 포함된 샘플 XML 요청도 포함되어 있다.

login API를 확인하면 이런 창을 볼 수 있는데, 여기서 endpoint URI를 분석해보면,
https://- 보안 HTTP를 지정합니다.login.salesforce.com- 로그인 요청을 위한 도메인/services/Soap- SOAP API 요청이라는 뜻/c- 엔터프라이즈 WSDL라는 뜻. 파트너 WSDL에는 /u/36.0- API 버전 번호/0DF36000000LHZw- 패키지 버전 번호. 관리 패키지를 사용하지 않는 경우엔 패키지 번호를 지워도 된다.

생성이 잘 된 경우엔 이렇게 success 요소에 true와 id가 담겨서 response된다. 솔직히.. SOAP api는 처음 사용하다보니 어려운 것 같다. REST 만큼 익숙해질 수 있도록 자주 들여다 봐야 할 듯..!!