반응형
API (Application Programming Interface)
- 프로그래밍 언어가 제공하는 기능을 수행할 수 있게 만든 인터페이스
- 어플리케이션과 프로그래밍으로 소통하는 방법
- 프로그래밍을 활용해서 할수 있는 어떤것
- Web API
- 웹 어플리케이션 개발에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 명세
- 현재 웹 개발은 추가로 직접 모든 것을 개발하지 않고 여러 Open API를 가져와서 활용하는 추세
- ex) 구글, 카카오지도 API, 우편번호, 도로명, 지번 소 검색 API등
- HTML을 주는것이 아닌 JSON을 이용해서 받을것
- 프로그래밍을 통한 요청에 JSON을 응답하는 서버를 만드는 것
REST
- REpresentational State Transfer
- 웹 설계상의 장점을 최대한 활용 할 수 있는 아키텍처 방법론
- 네트워크 아키텍쳐 원리의 모음
- 자원을 정의
- 자원에 대한 주소를 지정하는 방법
- REST 원리를 따르는 시스템 혹은 API를 RESTful API라고 하기도 함
- '자원'과 '주소'를 지정하는 방법
- 자원 - URI
- 행위 - HTTP Method
- 표현 - Representations
URI
- Unifor Resource Identifier
- 통합자원 식별자
- 인터넷의 자원을 나타내는 유일한 주소
- 인터넷에서 자원을 식별하거나 이름을 지정하는 데 사용되는 간단한 문자열
URL
- Uniform Resource Locator
- 통합 자원 위치
- 네트워크 상에 자원(리소스)이 어디 있는지 (주소)를 알려주기 위한 약속
URN
- Uniform Resource Name
- 통합 자원 이름
- URL과 달리 자원의 위치에 영향을 받지않는 유일한 이름 역할 (독립적 이름)
URI 구조
URL과 URI
- URI는 크게 URL과 URN으로 나눌 수 있지만 일반적으로 URL 로 통칭하여 사용함
- 하지만 URI > URL 관계를 가지고 있다.
URI 설계 주의사항
- 밑줄
_
이 아닌 하이픈-
을 사용 - 소문자 사용
- 파일 확장자는 포함시키지 않음
HTTP
- HTML 문서와 같은 자원들을 가져올 수 있도록 해주는 프로토콜
- 웹에서 이루어지는 모든 데이터 교환의 기초
- 클라이언트 -서버 프로토콜
- 요청과 응답으로 이루어짐
- 특징
- 비연결지향 - 서버는 응답후 접속을 끊음
- 무상태 - 접속이 끊어지면 클라이언트와 서버 간의 통신이 끝나며 상태를 저장하지 않음
- 위의 두가지 특성을 보완하기 위하여 쿠키와 세션 활용
- 자원에 대한 행위
- 즉, HTTP는 HTTP Method를 정의하여 주어진 자원에 수행하길 원하는 행동을 나타냄
- 의미론적으로 행위를 규정하기 때문에 '실제 그 행위 자체가 수행됨'을 보장하진 않음
- 종류
- GET : 특정 자원의 표시를 요청, 오직 데이터를 받기만 함
- POST : 서버로 데이터를 전송하며, 서버에 변경사항을 만듦.
- PUT : 요청한 주소의 자원을 수정
- DELETE : 지정한 자원을 삭제
RESTful 한 표현
- 행위에 대한 표현 포함 X -> 무조건 HTTP method 이용
- 자원에 대한 행위는 HTTP method로 표현
Representations
- JSON
- 문자열기반의 객체
- 자바스크립트 객체 문법을 따르며, 구조화된 데이터를 표현하기 위한 문자 기반 데이터 포맷
- 사람이 읽고 쓰기 쉽고 기계가 파싱하고 만들어 내기 쉬움
- 파이썬의 dic, 자바스크립트의 object처럼 C계열의 언어가 갖고 있는 자료구조로 변환하기 쉬움
REST 핵심규칙
- URI는 정보의 자원을 표현해야 한다.
- 자원에 대한 어떠한 행위는 HTTP Method로 표현한다.
반응형