Rest API 정리
REST API
REST API란 ?
모바일 앱이나, javascript 앱을 위한 웹 서버 프로그램은, 앱이 사용할 데이터를 출력해야한다.
JSON 형식, XML 형식으로 데이터를 출력한다.
클라이언트 앱을 위한 웹 서버 프로그램이 RESTful Service 이다.
RESTful Service가 제공하는 URL 목록이 REST API이다.
클라이언트 앱은 REST API URL을 서버에 요청해서, 서버와 데이터를 주고 받는다.
클라이언트 앱과 RESTful Service 서버 사이의 통신은 HTTP, HTTPS 프로토콜을 사용한다.
프론트엔드와 백엔드
javascript언어로 개발된 클라이언트 앱이 프론트엔드, 클라이언트 앱에 데이터를 제공하기 위한 서버가 백엔드이다.
클라이언트 앱은 백엔드의 REST API URL을 요청해서 서버와 데이터를 주고받는다.
request method
웹서버를 호출하는 요청방식에는 GET, POST가 일반적이다.
- GET : 데이터 조회 요청
- POST : 신규 데이터 등록 요청
- PUT : 데이터 수정 요청
- DELETE : 데이터 삭제 요청
JSON 형식
JSON(JavaScript Object Notation) : 객체와 배열 문법으로 데이터를 표현
JSON 형식의 예
-
객체 ` { “name”: “박승희”, “age”: 24 } `
-
배열 ` [{ “name”: “박승희”, “age”: 24 }, { “name”: “천러”, “age”: 20 }]; `
JSON 형식에서는 반드시 속성명을 따옴표로 묶어야한다.
Serialization , unSerialization
- Serialization: 객체, 배열을 JSON 형식의 문자열로 변환하는 것
클라이언트 앱에서 서버로 데이터를 보낼 때, JSON 형식의 문자열로 serialize 해서 보내야 한다.
let person = { "name": "박승희", "age": 24 };
let s = JSON.stringify(person); // json 형식의 문자열로 변환
console.log(s);
- unSerialization: JSON 형식의 문자열로부터 객체나 배열을 생성하는 것
서버에서 받아온 JSON 형식의 문자열을 unserialize 해서 객체로 만들어야 한다.
let s = '{ "name": "박승희", "age": 24 }';
let person = JSON.parse(s); // JSON형식의 문자열로부터 객체 생성
console.log(person);
Serialization , unSerialization 활용하기
- deep copy
let a1 = [{ "name": "박승희", "age": 24 }, { "name": "천러", "age": 20 }];
let s = JSON.stringify(a1); // a1 데이터를 모두 json형식 문자열로 만들고
let a2 = JSON.parse(s); // a1 json 문자열로 부터 새로운 a2 배열 생성
console.log(a2);
- deep compare
let a1 = [{ "name": "박승희", "age": 24 }, { "name": "천러", "age": 20 }];
let s = JSON.stringify(a1);
let a2 = JSON.parse(s);
console.log(a2);
if (JSON.stringify(a1) == JSON.stringify(a2)) // 속성의 순서가 다르면 false가된다!
console.log("equals");
Comments