API, REST API, REST FUL API

2023. 5. 11. 03:24·API
반응형
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 설계

  1. 자원의 표현 방식:
    • 예시: /users, /products, /orders
  2. 자원에 대한 식별자:
    • 예시: /users/{id}, /products/{id}, /orders/{id}
  3. 자원 간의 계층 구조:
    • 예시: /users/{id}/orders, /products/{id}/reviews
  4. 동사보다는 명사를 사용:
    • 예시: /users/{id}/address (X), /users/{id}/addresses (O)
  5. 복수형 사용:
    • 예시: /users, /products
  6. 필터링과 검색:
    • 예시: /users?name=John, /products?category=electronics
  7. 페이징:
    • 예시: /products?page=1&limit=10
  8. 하위 자원 생성:
    • 예시: /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의 장점

  1. 간결하고 직관적인 설계: REST API는 HTTP 프로토콜을 기반으로하며, 자원을 URL로 표현하고 HTTP 메서드를 사용하여 자원에 대한 동작을 정의한다. 이러한 간결한 설계로 인해 사용하기 쉽고 이해하기 쉽다.
  2. .확장성과 유연성: REST API는 서버와 클라이언트 간의 느슨한 결합을 제공하여 시스템의 확장성과 유연성을 향상시킨다. 서버와 클라이언트는 독립적으로 개발될 수 있으며, 서로의 변경 사항에 영향을 받지 않는다.
  3. 다양한 클라이언트 지원: REST API는 HTTP 프로토콜을 기반으로하므로 어떤 플랫폼과 언어에서도 사용할 수 있습니다. 이는 다양한 종류의 클라이언트, 예를 들어 웹 브라우저, 모바일 앱, 데스크톱 애플리케이션 등을 지원하는데 도움이 됩니다.
  4. 캐싱을 통한 성능 개선: REST API는 HTTP의 캐싱 기능을 활용할 수 있어서, 동일한 요청에 대한 응답을 캐시하여 네트워크 대역폭을 절약하고 응답 시간을 단축시킬 수 있다.

REST의 단점

  1. 표준의 부재: REST API는 표준이 정확하게 정의되어 있지 않아 구현 방식에 따라 일관성이 부족할 수 있습니다. 이는 API의 상호 운용성과 호환성을 저해할 수 있다.
  2. 제한적인 기능: REST API는 주로 CRUD(Create, Read, Update, Delete) 작업을 위해 설계되었으며, 데이터 조작 작업 이외의 기능을 제공하기 어렵다. 특정 동작이나 비즈니스 로직을 처리해야하는 경우에는 추가적인 설계와 구현이 필요하다.
  3. 보안 문제: REST API는 토큰 기반 인증이나 HTTPS와 같은 보안 기능을 추가해야 안전한 통신을 보장할 수 있다. 이러한 추가 작업이 필요하며, 잘못 구현된 경우 보안상의 취약
반응형

'API' 카테고리의 다른 글

JPA(Java Persistence API)  (0) 2023.06.10
'API' 카테고리의 다른 글
  • JPA(Java Persistence API)
JAVALA
JAVALA
워니‘s Diary
    반응형
  • JAVALA
    정신줄 JAVA라
    JAVALA
  • 전체
    오늘
    어제
    • 분류 전체보기 (83)
      • Codding_Test (11)
        • BaekJoon (7)
        • Programmers (3)
      • Algorithm (11)
      • Daily (4)
        • memoir (4)
      • Error (7)
        • InteliJ (1)
        • eclipse (0)
      • Computer Science (1)
      • JAVA (7)
      • Javascript (0)
      • Spring Boot (7)
      • API (2)
      • Server (0)
      • DB (2)
        • ORACLE (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    제로베이스
    트리 자료구조
    개발자
    프론트엔드 개발자
    springboot
    자바 알고리즘
    프로그래머스
    개발자 부트캠프
    백엔드 개발자
    자바
    개발자 국비
    자바 클래스
    스프링부트
    자바 스프링
    개발자 비전공자
    코딩테스트
    자바 메소드
    자바 스프링부트
    spring boot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JAVALA
API, REST API, REST FUL API
상단으로

티스토리툴바