일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스프링부트
- 비즈니스 계층
- java I/O
- 퍼시스턴스 계층
- 스프링 부트 테스트
- ORM
- 토큰기반 인증
- JPA
- 프레젠테이션 계층
- 스프링부트 계층구조
- 로그인 인증 흐름
- 작업명중복
- IPC
- 세션기반 인증
- 비동기
- Java
- formmatted
- spring
- ./gradlew docker
- http
- ./gr
- 어노테이션
- MSA
- 스프링부트 구조
- 동기
- RESTfull API
- JWT
- @temproal
- 로그인/로그아웃
- 스프링
- Today
- Total
[DEV] J-Jay
API와 REST API 본문
API
네트워크에서 API는 프로그램 간에 상호작용하기 위한 매개체를 말한다.
식당을 예시로 들어보자.
식당에 가면 점원에게 요리를 주문한다. 그리고 점원은 주방에 가서 '요리를 만들어 주세요' 라고 요청한다.
요리가 완성되면 다시 점원이 손님에게 요리를 전달한다.
여기서 손님은 클라이언트, 주방에서 일하는 요리사를 서버라고 생각하고, 중간에 있는 점원을 API라고 생각하면 된다.
이 상황을 웹사이트에 방문하는 상황에 적용해서 생각해보자. 웹사이트의 주소를 입력해서 '네이버 메인화면 보여줘' 라고 요청하면 API는 이 요청을 받아 서버에 전달해준다. 이후 서버는 API가 준 요청을 처리해 결과문을 만들고 이것을 다시
API에게 전달한다. API는 최종 결과물을 브라우저에 보내주고 화면을 볼 수 있게 된다.
REST API(Representational State Transfer API)
REST API는 웹의 장점을 최대한 활용한 API이다. (자원을 이름으로 구분해 자원의 상태를 주고받는 API 방식)
쉽게 말해 명확하고 이해하기 쉬운 API를 말한다.
REST API는 서버/클라이언트 구조, 무상태, 캐시 처리, 계층화, 인터페이스 일관성과 같은 특징이 있다.
REST API의 장점은 URL만 보고도 무슨 행동을 하는 API인지 명확하게 알 수 있다는 것이다.
그리고 상태가 없다는 특징이 있어 클라이언트와 서버의 역할이 명확하게 분리된다. HTTP표준을 사용하는 모든 플랫폼에서 사용이 가능하다.
REST API의 단점은 HTTP메서드 즉, GET, POST와 같은 방식의 개수에 제한이 있고, 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없다.
REST API 사용 방법
규칙1. URL에는 동사를 쓰지 말고, 자원을 표시한다.
URL은 자원을 표시해야 한다는 말에서 자원은 가져오는 데이터를 말한다. 예를 들어 직원들 중에 id가 1인 직원의
정보를 가져오는 URL은 아래와 같이 표현할 수 있다.
· /emp/1
· /get-emp?emp_id=1
둘중 RESTfull API한 API는 1번이다. 2번의 경우 자원이 아닌 다른 표현을 섞어 사용했기 때문이다.
규칙2. 동사는 HTTP 메서드로 표시한다.
동사는 HTTP 메서드라는 것으로 해결한다. HTTP 메서드는 서버에 요청을 하는 방법으로 나눈 것인데 주로 사용 하는 HTTP 메서드는 POST, GET, PUT, DELETE이다 각각 만들고, 읽고, 업데이트하고, 삭제 하는 할을 담당한다. (CRUD)
'Back-end > 기본상식' 카테고리의 다른 글
토큰 기반 인증방식 - JWT (0) | 2023.09.10 |
---|---|
인증(Authentication) 인가(Authorization) (0) | 2023.09.09 |
Library 와 Framework (0) | 2023.08.30 |
IP와 Port (0) | 2023.08.29 |
데이터베이스(DB) (0) | 2023.08.28 |