반응형
API(Application Programming Interface)
API는 응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게
만든 인터페이스를 뜻 한다.
웹은 요청과 응답으로 작동한다.
클라이언트가 요청을 하게되면 서버는 이를 받고 여러 가지 동작을 수행 해 응답해준다.
우리가 네이버에서 회원가입 버튼을 누르게 되면 회원가입을 도와주는 API가 동작한다.
한 프로그램에서 다른 프로그램으로 데이터 주고받기 위한 방법
ex)
식당에서의 메뉴판
티비 리모컨
손님 > 메뉴판 > 주방
손님 > 리모컨 > 티비
REST API(Representational State Transfer)
특징
REST API(Representational State Transfer API)는 웹 서비스를 구축하고 통신하기 위한 아키텍처 스타일
REST의 특징을 살려 서비스 즉, API를 설계한 것 이다.
Open API(카카오 맵, 구글 맵, SMS) 모두 사용자의 임의로 변경 및 조합해서 사용이 가능하도록
대부분 REST API로 설계 되어있다.
아직도 일반적인 API와 크게 다른 점을 모르겠다면, 조금만 더 알아보자.
REST API와 일반 API의 가장 큰 차이점은
REST API는 각 요청이 어떤 동작이나 쓰임새를 그 요청 자체로 예상할 수 있다는 것이다.
REST 설계방식을 알아보자.
REST API 설계
- 자원의 표현 방식:
- 예시: /users, /products, /orders
- 자원에 대한 식별자:
- 예시: /users/{id}, /products/{id}, /orders/{id}
- 자원 간의 계층 구조:
- 예시: /users/{id}/orders, /products/{id}/reviews
- 동사보다는 명사를 사용:
- 예시: /users/{id}/address (X), /users/{id}/addresses (O)
- 복수형 사용:
- 예시: /users, /products
- 필터링과 검색:
- 예시: /users?name=John, /products?category=electronics
- 페이징:
- 예시: /products?page=1&limit=10
- 하위 자원 생성:
- 예시: /users/{id}/orders (POST)
/getPwByUserNum X
/updateReply X
/deleteBoard X
/POST/boardNumber/3 O
/PUT
REST FUL API
그렇다면 REST FUL API는 REST API와 무엇이 다른가
크게 다른 것은 없다
API 를 REST 규칙에 맞게 설계한 것을 RESTFUL 하다 라고 한다고 한다.
REST의 장점
- 간결하고 직관적인 설계: REST API는 HTTP 프로토콜을 기반으로하며, 자원을 URL로 표현하고 HTTP 메서드를 사용하여 자원에 대한 동작을 정의한다. 이러한 간결한 설계로 인해 사용하기 쉽고 이해하기 쉽다.
- .확장성과 유연성: REST API는 서버와 클라이언트 간의 느슨한 결합을 제공하여 시스템의 확장성과 유연성을 향상시킨다. 서버와 클라이언트는 독립적으로 개발될 수 있으며, 서로의 변경 사항에 영향을 받지 않는다.
- 다양한 클라이언트 지원: REST API는 HTTP 프로토콜을 기반으로하므로 어떤 플랫폼과 언어에서도 사용할 수 있습니다. 이는 다양한 종류의 클라이언트, 예를 들어 웹 브라우저, 모바일 앱, 데스크톱 애플리케이션 등을 지원하는데 도움이 됩니다.
- 캐싱을 통한 성능 개선: REST API는 HTTP의 캐싱 기능을 활용할 수 있어서, 동일한 요청에 대한 응답을 캐시하여 네트워크 대역폭을 절약하고 응답 시간을 단축시킬 수 있다.
REST의 단점
- 표준의 부재: REST API는 표준이 정확하게 정의되어 있지 않아 구현 방식에 따라 일관성이 부족할 수 있습니다. 이는 API의 상호 운용성과 호환성을 저해할 수 있다.
- 제한적인 기능: REST API는 주로 CRUD(Create, Read, Update, Delete) 작업을 위해 설계되었으며, 데이터 조작 작업 이외의 기능을 제공하기 어렵다. 특정 동작이나 비즈니스 로직을 처리해야하는 경우에는 추가적인 설계와 구현이 필요하다.
- 보안 문제: REST API는 토큰 기반 인증이나 HTTPS와 같은 보안 기능을 추가해야 안전한 통신을 보장할 수 있다. 이러한 추가 작업이 필요하며, 잘못 구현된 경우 보안상의 취약
반응형
'API' 카테고리의 다른 글
JPA(Java Persistence API) (0) | 2023.06.10 |
---|