Spring boot - Rest API

SMongS·2022년 9월 15일
1

Spring boot

목록 보기
1/6

spring boot로 웹 개발을 해보면서 rest api 개념을 공부하면서 정리해봤습니다.

API

  • API ( Application Programming Interface )는 응용프로그램이나 서비스를 개발하는데 필요한 운영체제(OS)나 라이브러리 등의 특정 기능을 추상화하여 사용하기 쉽도록 만든 인터페이스
  • 데이터와 기능의 집합을 제공하는 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환 가능하도록 함

API 종류

  1. private API
    내부 API로, 외부에 노출되지 않는다. 자체 제품과 서비스를 개선하기 위해 내부적으로 사용하는 것이 일반적이다. private API로 발행하고 중간에 gateway를 두고 사용하는 경우도 있음
  2. public API
    public API는 개방형 API로, 모두에게 공개되는 API 형태
  3. partner API
    partner API는 인가된 사용자에 한하여 공유되는 API로 비즈니스 관계에서 사용되는 편이며, 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용

REST

정의

  • REST ( Repressentational State Transfer )는 해당 자원의 정보를 주고 받는 모든 것을 의미
  • 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식
  • REST는 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일
  • 강점 : 메소드와 URL을 조합해서 예측 가능하고 일정한 정보와 작업을 요청

Rest 구성 요소

  1. 자원 ( Resource ) - URI

  2. 행위 ( Verb) - HTTP Method

    HTTP Method설명
    POSTCREATE 작업에 대한 Method로 서버에 데이터를 추가할 때 사용
    GETREAD 작업에 대한 Method로 서버에 데이터를 읽어올 때 사용
    PUTUPDATE 작업에 대한 Method로 서버 데이터를 갱신할 때 사용 (데이터가 전체일 때)
    PATCHUPDATE 작업에 대한 Method로 서버 데이터를 갱신할 때 사용 (데이터가 일부일 때)
    DELETEDELETE 작업에 대한 Method로 서버 데이터를 삭제할 때 사용
  3. 표현 ( Representation of Resource )

REST 장단점

  • 장점
    • HTTP 인프라 베이스라 REST API를 위한 인프라를 구축할 필요가 없음.
    • HTTP 표준을 따르기 때문에 여러 추가적인 기능을 사용할 수 있음.
    • HTTP를 지원하는 모든 플랫폼에서 사용이 가능함.
    • Hypermedia API의 기본을 충실히 지키면서 범용성을 보장.
    • REST API URI가 의도하는 바를 명확하게 나타내므로 기능을 쉽게 파악 가능.
    • 기능 통합으로 여러 서비스를 통합할 때 생기는 디자인 문제를 최소화.
    • 서버와 클라이언트의 역할을 명확하게 분리.
  • 단점
    • 표준 자체가 존재하지 않아 정의가 필요.
    • HTTP Method 형태가 제한적. (GET, POST, PUT, PATCH, DELETE)
    • 테스트에 있어 전문성을 요구. (Header, dataType 등 HTTP 부가정보 설정)
    • 구형 브라우저에서 호환이 되지 않아 지원해주지 못하는 동작이 많음.

REST API

정의

  • REST 원칙을 기반으로 구현된 API를 말하며 가장 큰 특징은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능한 형태

참고 : https://velog.io/@carrotsman91/REST-API

profile
반갑습니당~😄

0개의 댓글