6.1 API와 REST API

SummerToday·2024년 2월 5일
1
post-thumbnail
post-custom-banner

API

  • API란 네트워크에서 프로그램 간에 상호작용을 하기위한 매개체이다.

  • 클라이언트의 요청을 서버에 전달하고, 서버의 결과물을 클라이언트에게 반환해주는 역할을 한다.

  • 간단히 말하면, API는 서로 다른 두 소프트웨어가 서로 통신하고 데이터를 교환하도록 돕는 코드로 정의할 수 있다.

    출처 https://www.postman.com/what-is-an-api/


REST(ful) API

  • REpresentational State Transfer의 약자로, 자원을 이름으로 구분해 자원의 상태를 주고 받는 API 방식이다.

  • URL의 설계 방식이다.

    • REST API의 특징

      • 서버/클라이언트 구조 무상태

      • 캐시 처리 가능

      • 계층화

      • 인터페이스 일관성

    • REST API의 장점

      • URL의 의미가 명확하여 어떤 API인지 이해하기가 쉽다.

      • HTTP 표준을 사용하는 모든 플랫폼에서 사용 가능하다.

    • REST API 단점

      • HTTP 메소드 방식이 한정적이다. (GET, POST, ...)

      • 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없다.

RESTful API : REST하게 디자인한 API.


REST API 사용법

  • URL에는 동사를 쓰지말고 자원(데이터)을 표시해야한다.

    • ex. 학생 중 id가 1인 학생의 정보를 가져오는 URL
      • /student/1                             (RESTful API o)
      • /get·student?student_id=1         (RESTful API x)
      • /articles/show/1                      (RESTful API x)

    두번째 경우 동사를 사용하여 추후 개발시에 혼란을 야기할 수 있는 여지가 존재한다.
    왜냐하면 개발자마다 서버에 데이터를 요청 시 Get, Show 등 쓰는 동사가 다를 수 있기 때문이다.


  • 동사는 HTTP 메소드로 설정한다.
    HTTP 메소드는 서버에 요청을 하는 방법을 나눈 것이다.

    • POST (Create), GET (Read), PUT (Update), DELETE (Delete)로 나누어져 있다.

    • 위 기능들을 묶어 CRUD라 칭한다.

      • ex. 적합한 HTTP 메소드와 URL

        • id가 1인 블로그 글을 조회하는 API
          GET /articles/1

        • 블로그 글을 추가하는 API
          POST /articles/1

        • 블로그 글을 수정하는 API
          PUT /aricles/1

        • 블로그 글을 삭제하는 API
          DELETE /articles/1

      cf. / 는 계층관계를 나타낸다.




해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다.
신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 384쪽
profile
IT, 개발 관련 정보들을 기록하는 장소입니다.
post-custom-banner

0개의 댓글