6장 레벨2 스프링 부트 3로 블로그 제대로 만들기
- 네트워크에서 API는 프로그램 간에 상호 작용하기 위한 매개체를 말한다.
- 식당에서 벌어지는 일을 비유를 들어 API를 설명한다.
식당으로 알아보는 API
- 우리가 식당에 가면 -> 점원에서 요리를 준분
- 점원은 주방에 가서 "요리를 만들어 달라"라고 요청
- 요리가 완성되면 다시 점원이 손님에서 요리를 전달
그림 128
웹의 장점을 최대한 활용하는 REST API
REST는 Representational State Transfer를 줄인 표현
- 자원을 이름으로 구분해 자원의 상태를 주고받는 API 방식
- URL의 설계 방식
REST API의 특징
- REST API는 서버/클라이언트 구조, 무상태, 캐시 처리 가능, 계층화, 인터페이스 일관성 같은 특징이 있다.
REST API의 장점과 단점
REST API 장점
- REST API의 장점은 URL만 보고도 무슨 행동을 하는 API인지 명확하게 알 수 있다는 것
- 상태가 없다는 특징이 있어 클라이언트와 서버의 역할이 명확하게 분리
- HTTP 표준을 사용하는 모든 플랫폼에서 사용가능
REST API 단점
- HTTP 메서드, 즉, GET, POST와 같은 방식의 개수 제한
- 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없다.
그럼에도 REST API는 주소와 메서드만 보고 요청의 내용을 파악할 수 있다는 강력한 장점이 있어 많이 사용
REST API를 사용하는 방법
규칙 1. URL에는 동사를 쓰지 말고, 자원을 표시
- URL는 자원을 표시해야 한다는 말에서 자원은
- 학생 중에 id가 1인 학생의 정보를 가져오는 URL는 이렇게 설계
URL 설계 예
/students/1
/get/student?student_id=1
- 더 맞는 설계는 RESTful API는 1번이다.
- 2번은 다른 표현을 섞었기 때문이다.
- 예를들어 서버에 데이터를 요청하는 URL를 설계할 때 get, show를 쓰면 엉망이 된다.
- 그래서 RESTful API를 설계할 때는 이런 동사를 쓰지 않는다.
예문적합성설명
/articles/1 | 적합 | 동사 없음, 1번 글을 가져온다는 의미가 명확, 적합 |
/articles/show/1 | 부적합 | show라는 동사가 있음, 부적합 |
/show/articles/1 |
규칙 2. 동사는 HTTP 메서드로
- 동사는 HTTP메서드라는 것으로 해결 가능하다.
- 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 |
GET, POST, PUT, DELETE는 URL 에 입력하는 값이 아니라 내부적으로 처리하는 방식을 미리 정하는 것
HTTP 메서드는 내부에서 서로 다른 함수로 처리
트랜잭션이란 데이터베이스의 데이터를 바꾸기 위해 묶은 작업의 단위
'개인공부 > 스프링 부트 3 백엔드 개발자 되기' 카테고리의 다른 글
스프링 부트 - 8장 스프링 시큐리티로 로그인/로그아웃, 회원 가입 구현하기 (0) | 2023.07.05 |
---|---|
스프링 부트 - 9장_JWT로 로그인/로그아웃 구현하기 (0) | 2023.07.05 |
스프링 부트 - 5장_데이터베이스 조작이 편해지는 ORM (0) | 2023.06.29 |
스프링 부트 - 4장_스프링부트3의 테스트 (0) | 2023.06.29 |
스프링 부트 - 3장_스프링부트3 구조 이해하기 (0) | 2023.06.25 |