스프링 부트3 제 10장
웹 브라우저 말고 다른 기기에서도 서비스 되나요?
스프링 부트3 제 10장
REST API(Representational State Transfer API)
REST API는 서버 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식이다. 클라이언트가 요청을 보내면, 서버는 특정 기기에 종속되지 않고 모든 기기에서 통용할 수 있는 JSON 데이터를 응답으로 보낸다.
REST란 HTTP URL로 서버의 자원을 명시하고, HTTP 메서드로 해당 자원에 대해 CRUD하는 것을 뜻한다.
API(Application Programming Interface)란 앱을 간편하게 사용할 수 있게 하는 일종의 약속. 즉, 메뉴판 같은 거라고 생각하면 쉬움.
JSON(JavaScript Object Notation)
자바스크립트 방식을 차용한 객체 표현식이다. 키와 값으로 구성된 정렬되지 않은 속성의 집합이다. 키는 항상 큰 따옴표로 감싸고, 값은 문자열인 경우에만 큰 따옴표로 감싼다.
1
2
3
4
5
{
"name": "초코",
"breed": "푸들",
"age": 2
}
REST API 실습
{JSON} Placeholder 사이트로 가짜 API를 사용해 테스트를 할 수 있다. 또한, Talend API Tester로 사이트에 여러 요청을 보내고 수신한 데이터를 확인했다.
HTTP
상태 코드
- 100번대(정보): 요청이 수신돼 처리 중
- 200번대(성공): 요청이 정상적으로 처리 됨
- 300번대(리다이렉션 메시지): 요청을 완료하려면 추가 정보 필요
- 400번대(클라이언트 요청 오류): 클라이언트 요청이 잘못돼 서버가 요청 수행 불가
- 500번대(서버 응답 오류): 서버 내부에 에러 발생
메시지
- 시작 라인: HTTP 요청 또는 응답 내용. 항상 한 줄로 끝남
- 헤더: 전송에 필요한 metadata 존재
- 본문: 실제 전송하는 데이터
요청 메시지
1
2
GET /posts/1 HTTP/1.1 # 시작 라인
Host: jsonplaceholder.typicode.com # 헤더
응답 메시지
1
2
3
4
5
6
7
8
9
10
11
HTTP/1.1 200 # 시작 라인
date: Tue, 25 Feb 2025 08:16:13 GMT # 헤더
content-type: application/json; charset=utf-8
# ... 생략
{ # 본문(JSON 데이터)
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
