API
- Application Programming Inerface, 애플리케이션을 간편히 이용할 수 있도록 하는 미리 정해진 일종의 약속
- 웹 서비스를 스마트폰, 스마트웨치, 태블릿등 다양한 클라이언트에서 사용가능 하도록 함
REST API
- 서버 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계방식
- 클라이언트에서 정보를 요청하면 서버는 특정 기기에 종속되지 않고 모든 기기에서 통용할 수 있는 JSON 데이터를 응답으로 보냄
JSON 데이터
- 자바스크립트 방식을 차용한 객체 표현식
- 키(key)와 값(value)의 쌍으로 이루어진 속성(property)으로 구성
REST API 실습
- {JSON} Placeholder 사이트에 가면 가짜 API를 사용해 무료로 각종 테스트 가능
- 크림 브라우저 확장 프로그램인 Talend API Tester를 설치해 REST API를 사용 가능
HTTP 상태 코드
클라이언트가 보낸 요청이 성공했는지 실패했는지 알려주는 코드
응답은 100~500번대까지 5대 그룹으로 나뉘어 있음
- 1XX(정보) : 요청이 수신돼 처리중입니다.
- 2XX(성공) : 요청이 정상적으로 처리됐습니다.
- 3XX(리다이렉션 메시지) : 요청을 완료하려면 추가 행동이 필요합니다.
- 4XX(클라이언트 요청 오류) : 클라이언트의 요청이 잘못돼 서버가 요청을 수행할 수 없습니다.
- 5XX(서버 응답 오류) : 서버 내부에 에러가 발생해 클라이언트 요청에 대해 적절히 수행하지 못했습니다.
HTTP 메시지
HTTP 요청과 응답은 실제 텍스트 형식으로 전송하는데, 이를 HTTP 메시지라고 함
HTTP 메시지는 시작 라인, 헤더, 빈 라인, 본문으로 구성
- 시작 라인 : HTTP 요청 또는 응답 내용이 있음, 시작 라인은 항상 한 줄
- 헤더 : HTTP 전송에 필요한 부가 정보(metadata)가 있음
- 빈라인 : 헤더의 끝을 알리는 빈 줄, 헤더가 모두 전송되었음을 알림
- 본문 : 실제 전송하는 데이터가 있음