Server

Rest API vs SOAP

하늘을난모기 2017. 12. 31. 22:47

API (Application Programming Interface ; 응용 프로그래밍 인터페이스)

응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

소스를 공개하지 않고 특정 권한으로 파일 업로드/다운로드를 할 수 있는 기능을 제공


Web API

웹 애플리케이션 개발에서 다른 서비스 요청을 보내고 응답을 받기 위해 정의된 명세서



SOAP (Simple Object Access Protocol)

HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜

구조가 복잡하여 HTTP 상에서 전달이 무거움

메시지 인코딩/디코딩 과정 등 웹서비스 개발의 난이도가 높음


구조

HEADER : 반복, 보안 및 트랜잭션 정보로 하는 메타 정보

BODY : 주요한 정보


특징 요약

서비스 발견이 가능하며, 동적 바인딩 가능

서비스는 컴포넌트와 같이 독립된 모듈

서비스는 느슨하게 연결

서비스의 조립 가능

플랫폼과 무관


SOA (Service Oriented Architecture ; 서비스 기반 아키텍쳐)

기존 애플리케이션의 기능들을 나누고 묶어서 소프트웨어 컴포넌트 단위로 재조합 후 해당 서비스를 서로 조합하여 업무 기능을 구현한 애플리케이션을 만드는 소프트웨어 아키텍쳐



REST (Representational State Transfer)

SOAP보다 웹의 우수성을 최대한 활용할 수 있도록 한 네트워크 기반의 아키텍쳐

주로 JSON 형식

WWW(World Wide Web)와 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍쳐의 한 형식

Roy Fielding의 논문에서 소개

클라이언트와 서버 간의 구성요소를 엄격하게 분리

- 구현 단순화

- 확장성 향상

REST 원리를 따르는 시스템


Rest 원리

HTTP의 기본 메서드 GET/PUT/POST/DELETE만으로 접근


CRUD

Create        POST        생성

Read          GET          조회

Update       PUT          수정

Delete        DELETE      삭제


ROA (Resource Oriented Architecture ; 자원 기반 아키텍쳐)

Resource란 이미지, 음악, 검색 등 웹에서 다른 이들과 공유하고자 개방된 모든 자원을 의미



출처

http://www.slideshare.net/seunghochoi4/soap-restful

http://mygumi.tistory.com/55