1. 사전 지식 : API와 REST API
1) 식당으로 알아보는 API
▪︎ API ( Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스 )
- 클라이언트의 요청을 서버에 전달하고, 서버의 결과물을 클라이언트에게 전달해주는 역할
즉, 프로그램 간에 상호작용하기 위한 매개체를 의미
- 식당의 점원 역할 : 손님이 점원에게 주문을 하면, 점원이 주방에 가서 주문을 전달
요리가 완성되면 다시 점원이 손님에게 요리 전달
2) 웹의 장점을 최대한 활용하는 REST API
▪︎ REST API ( Representational State Transfer )
- 자원을 이름으로 구분해 자원의 상태를 주고 받는 API 방식
- 웹의 장점을 최대한 활용하는 API
- 명확하고 이해하기 쉬운 API → URL의 설계 방식
◉ REST API의 특징
- 서버/클라이언트 구조, 무상태, 캐시 처리 가능, 계층화, 인터페이스 일관성과 같은 특징 존재
→ 지금 당장 이해할 필요는 없고, 추후 웹 공부할 때 자세히 찾아보자
◉ REST API의 장점
- URL만 보고도 무슨 행동을 하는 API인지 명확히 알 수 있음
- 상태가 없다는 특징이 있어서 클라이언트와 서버의 역할이 명확하게 분리됨
- HTTP 표준을 사용하는 모든 플랫폼에서 사용 가능
◉ REST API의 단점
- HTTP 메서드 즉, GET, POST와 같은 방식의 개수 제한
- 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없음
∴ 이러한 단점에도 불구하고 주소와 메서드만 보고 요청의 내용을 파악할 수 있다는 강력한 장점으로 인해 많은 개발자들이 사용함
◉ REST API를 사용하는 방법
규칙1. URL에는 동사를 쓰지 말고, 자원을 표시해야 한다
- 자원이란? 가져오는 데이터를 의미
- ( 예시 ) 학생 중 id가 1인 학생의 정보를 가져오는 URL 설계
❶ /student/1
❷ /get・student?student_id=1
• REST API 즉, RESTful API는 ❶
❷의 경우, 자원이 아닌 다른 표현을 섞어 사용했기 때문 → 동사를 사용해서 추후 개발 시에 혼란을 줄 수 있음
규칙2. 동사는 HTTP 메서드로
- HTTP 메서드 : 서버에 요청을 하는 방법
POST, GET, PUT, DELETE
→ 각각 만들고(create), 읽고(read), 업데이트하고(update), 삭제(delete)하는 역할 담당 ⇒ CRUD(크루드)
- 블로그에 글을 쓰는 설계
설명 | 적합한 HTTP 메서드와 URL |
id가 1인 블로그 글을 조회하는 API | GET/articles/1 |
블로그 글을 추가하는 API | POST/articles/1 |
블로그 글을 수정하는 API | PUT/articles/1 |
블로그 글을 삭제하는 API | DELETE/articles/1 |
REST API : 웹의 장점을 최대한 활용하는 API
→ 자원을 이름으로 구분해 자원의 상태를 주고받는 방식으로 URL 설계 방식을 의미
'백엔드 > Spring Boot' 카테고리의 다른 글
6. 블로그 기획하고 API 만들기 - (2) 블로그 개발을 위한 엔티티 구성하기 (0) | 2023.07.26 |
---|---|
JSP에 CSS 및 Javascript 연결 (0) | 2023.07.25 |
5. 데이터베이스 조작이 편해지는 ORM (2) - JPA와 하이버네이트, 스프링 데이터와 스프링 데이터 JPA (0) | 2023.07.18 |
5. 데이터베이스 조작이 편해지는 ORM (1) - 데이터베이스, ORM (0) | 2023.07.17 |
4. 스프링 부트 3와 테스트 (0) | 2023.07.14 |