API( Application Programming Interface ): 소프트웨어 애플리케이션 간의 상호작용을 가능하게 하는 인터페이스.
API는 하나의 애플리케이션이 다른 애플리케이션의 기능이나 데이터를 사용할 수 있도록 정의된 규칙과 프로토콜의 집합이다.
HTTP/HTTPS를 통해 통신하는 Web API의 대표적 종류로 REST, SOAP, GraphQL 등이 있으며,
웹 어플리케이션이나 모바일 애플리케이션 통신에서 사용된다.
REST API — Representational State Transfer API :
웹 어플리케이션 간의 상호작용을 위한 아키텍처 스타일 및 설계 방식.
HTTP 프로토콜을 기반으로 하며 리소스 지향 아키텍터를 통한 클라이언트-서버 간의 데이터 전송을 가능하게 한다.
REST의 장점으로는 단순성, 유연성, 확장성이 있다.
- 단순성 : HTTP 프로토콜을 그대로 사용하여, 이해하고 구현하기 쉬움.
- 유연성: JSON, XML 등 다양한 형식의 데이터를 주고받을 수 있음.
- 확장성: REST의 설계 원칙은 시스템 간의 유연한 확장을 가능하게 함.
REST API는 몇 가지의 원칙을 가지고 있는데 이 원칙을 준수하는 API를 RESTful API라고 부른다.
- 자원(Resource)의 명확한 식별
- 표준 HTTP 메서드 사용
- 무상태성(Stateless)
- 캐시 가능성(Cacheability)
- 일관된 인터페이스(Uniform Interface)
restful 한 api 를 만들기 위해
소문자, 명사형, 복수형으로 uri를 만들어 주자.
ex) /users
HTTP 메소드를 이용한 RESTful Api의 표현/구현 방식 (리소스에 대한 CRUD)
@GetMapping(”/users”) - 유저 목록 조회
@PostMapping(”/users”) - 신규 유저 가입(생성)
@PatchMapping(”/users/{id}”) - 유저 정보 수정
@DeleteMapping(”/users/{id}”) - 유저 탈퇴(삭제)
반응형
'Spring > Boot' 카테고리의 다른 글
| 스프링부트 응답 메시지 보내기 (0) | 2024.09.01 |
|---|---|
| 스프링부트 thymeleaf 정리하기 (0) | 2024.08.22 |
| 스프링부트 ResponseEntity<T> (0) | 2024.08.17 |