REST API

cometLEE·2023년 5월 10일
0

nodeJS

목록 보기
3/9

API가 뭔데?

Application Programming Interface : 서로 다른 프로그램간에 소통할 수 있게 도와주는 통신규약

서버와 고객간의 통신규약 --> 서버에게 요청해서 데이터를 가져오는 방법

쉽게 설명해서 서버와 브라우저의 관계라고 생각하면 편하다

API의 종류

  1. SOAP API
  • 클라이언트와 서버는 XML을 사용하여 메세지를 교환한다.
    하지만, 근래에는 자주 사용되지 않으며 유연성이 떨어진다(JSON 도입때문인듯)
  1. RPC API
  • 원격 프로시저 호출이라고 함. 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트에게 다시 전송한다.
  1. WebSocket API
  • JSON객체를 사용하여 데이터를 전달하는 웹 API. 클라이언트와 서버간의 양방향 통신을 지원하기 때문에 실시간으로 클라이언트와 작업내용을 공유해야 할 때 사용된다.
  1. REST API
  • 가장 많이 사용되고 유연한 API. 클라이언트가 서버에 요청을 데이터로 전송하면, 서버가 클라이언트의 입력을 사용하여 내부함수 실행 후 출력데이터를 클라이언트에게 반환

출처: Amazon aws - API란 무엇인가요

REST API

Representational State Transfer의 약자.
웹 API를 작성할 때 REST의 6가지 원칙을 중요시하게 생각함.

6가지 원칙

1. Uniform Interface

인터페이스는 일관성이 있어야 한다.

  • 하나의 URL로는 하나의 데이터만 가져와야함
  • 간결하고 예측가능하게 코드작성
  • URL 이름을 관습에 맞게 짓자

2. Client-Server 역할 구분

  • URL을 통해 서버에 있는 자료를 가져다 사용할 수 있다.
    클라이언트는 요청만을, 서버는 응답만으로 반응하는 것.
    각자의 역할에 맞게 동작해야 함.

3. Stateless

  • 요청들은 각각 독립적으로 처리되어야 한다.
  • 요청간의 의존성이 존재하는 코드를 작성해서는 안된다.
  • 하나의 요청으로 요청에 필요한 모든 정보들을 실어보내는게 좋다.

4. Cacheable

  • 요청을 통해 보내는 자료들은 캐싱이 가능해야 한다.(캐싱가능여부, 기간 설정)
  • 캐싱이란 간단하게 자주 방문하거나 사용하는 웹페이지의 자료들을 클라이언트의 하드에 저장하여, 서버에 다시 요청하지 않아도 그 자료들을 하드로부터 불러올 수 있도록 하는 행위

5. Layered System

  • 여러가지 단계를 거쳐서 요청을 처리해도 괜찮다.
    (ex DB -> server -> client 3Tier-Architecture처럼...)

    6.Code on Demand

  • 서버는 고객에게 실제로 동작이 가능한 코드를 전송해줄 수 있다.


    HTTP Method

    HTTP 메소드란 클라이언트와 서버 사이에 이루어지는 요청(Request)와 응답(Response)데이터를 전송하는 방식.
    서버가 수행해야 할 동작을 지정하는 요청.

  1. GET - Read
  • 리소스(자원)취득.
  • 요청파라미터는 URL에 그대로 노출됨
  • 브라우저를 이용해서 서버로부터 자원을 가져올 때 사용됨.
  1. POST - Create
  • 리소스 생성, 리소스 데이터 추가
  • 요청 파라미터는 Body에 위치하게 되어서 URL에 노출되지 않는다.
  • 클라이언트에서 데이터를 폼으로 가져와서 서버측에서 동작할 때 사용
  1. PUT - Update
  • 리소스 변경
  1. Delete - Delete
  • 리소스 삭제
profile
server, kubernetes에 관심이 많이 있습니다

0개의 댓글