REST API란?

fromzoo·2021년 1월 18일
0

Rest api

Rest란?

  • 웹상에서 존재하는 자원에 고유한 URI로 구분하여 자원 상태(정보)를 주고받는 것을 의미한다.
  • 이 인터페이스를 이용해서 웹상에서 보는 데이터들인 자원을 주고 받는다.
  • 클라이언트와 서버의 통신 방식 중 하나

Rest의 구체적인 개념은 HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.

Rest 규칙

  1. URI는 정보의 자원을 표현해야 한다.

  2. 자원에 대한 행위는 HTTP Method(GET,POST,PUT,DELETE등)으로 표현한다.

api

  • 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 정보를 교환하는 인터페이스

rest api

rest를 기반으로 서비스 api를 구현한 것

Rest가 필요한 이유

  • 어플리케이션의 분리 및 통합
  • 다양한 클라이언트의 등장
  • 최근 서버 프로그램은 다양한 브라우저, 안드로이드폰, 아이폰과 같은 모바일에서도 통신할 수 있어야하기 때문에

Rest api 구성

  1. 자원 : URI
  • 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
  1. 행위 : HTTP Method
  • HTTP Method (CRUD - get, post, put, delete)
  1. 표현

HTTP method - CRUD

  • Create : Post / 자원 생성

  • Read : Get / 자원을 조회, 요청

  • Update : Put / 정보를 수정 (전체교체)

  • Delete : Delete / 자원 삭제

  • PATCH : 일부 수정

Rest 특징

  • 서버 - 클라이언트 구조

일관적인 인터페이스로 분리되어야한다.

  • stateless (무상태)
    각 요청 간 클라이언트의 context가 서버에 저장되어서는 안된다.

  • 캐시처리가능

  • 계층화

  • 인터페이스의 일관성

아키텍처를 단순화 시키고 작은 단위로 분리함으로써 클라이언트 서버의 각 파트가 독립적으로 개선될 수 있도록 해준다.'

Rest api 설계 기본규칙

참고 리소스 원형

  • 도큐먼트 : 객체 인스턴스나 데이터베이스 레코드와 유사한 개념
  • 컬렉션 : 서버에서 관리하는 디렉터리라는 리소스
  • 스토어 : 클라이언트에서 관리하는 리소스 저장소
  1. URI는 정보의 자원을 표현해야한다.
  • resource는 동사보다는 명사를, 대문자보다는 소문자를 사용
  • resource는 도큐먼트 이름으로는 단수 명사를 사용해야한다.
  • resource의 컬렉션 이름으로는 복수 명사를 사용해야한다.
  • resource의 스토어 이름으로는 복수명사를 사용해야한다.
EX) 
GET /Member/1 (x)
GET /members/1 (o) 
  1. 자원에 대한 행위는 HTTP Method(GET, PUT, POST, DELETE 등)로 표현한다.
  • URI에 HTTP Method가 들어가면 안된다.
EX)
GET /members/delete/1 (x)
DELETE / members/1 (o)
  • URI에 행위에 대한 동사표현이 들어가면 안된다. (즉 CRUD기능을 나타내는 것은 URI에 사용하지 않는다.)
EX)
GET /members/show/1 -> GET /members/1
GET /members/insert/2 -> POST /members/2
  • 경로 부분 중 변하는 부분은 유일한 값으로 대체한다. (즉, :id는 하나의 특정 resorce를 나타내는 고유한 값이다.)
    - EX) student를 생성하는 route: POST/students
    - EX) id=12인 student를 삭제하는 route:DELETE/students/12

REST API 설계규칙

  1. 슬래시 구분자(/)는 계층관계를 나타내는데 사용한다.
  • ex) http://restapi.example.com/houses/apartments
  1. URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
  • URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 하며 URI가 다르다는 것은 리소스가 다르다는 것이고, 역으로 리소스가 다르면 URI도 달라져야 한다.
  • REST API는 분명한 URI를 만들어 통신해야하기 때문에 혼동을 주지 않도록 URI경로의 마지막에는 슬래시(/)를 사용하지 않는다.
    ex)http://restapi.example.com/houses/apartments/ (X)
  1. 하이픈(-)은 URI 가독성을 높이는데 사용
  2. 밑줄(_)은 URI에 사용하지 않는다.
  3. URI 경로에는 소문자가 적합
  4. 파일확장자는 URI에 포함하지 않는다.
  5. 리소스간에는 연관 관계가 있는 경우

요약

  1. Rest api란?

    • 웹에서 존재하는 자원에 고유한 uri를 부여해서 http메소드 방식으로 자원의 상태(정보)를 주고받는 것을 의미
    • 이를 기반으로 서비스 api를 구현한 것이 Rest api다.
  2. Restful이란?

    • Rest api의 설계 규칙을 명확하게 지켜주는것.
    • 슬래시를 통해 계층관계를 표시, 숫자는 id를 나타냄, 동사보단 명사 위주
  3. HTTP메소드

    • GET => 정보를 조회
    • POST => 데이터 생성
    • PUT => 데이터 수정(전체수정)
    • PATCH => 데이터 수정(일부수정)
    • DELETE => 데이터 삭제
  4. Rest api 특징

  • 무상태성
  • 캐시처리가능
  • 서버클라이언트구조
  • 계층적
  • 인터페이스의 일관성
  1. 필요한 이유
  • 다양한 브라우저와 안드로이드폰, 아이폰과 같은 모바일 디바이스에서 통신
  • 멀티플랫폼 => WEB브라우저 외의 클라이언트를 위해

출처

profile
프론트엔드 주니어 개발자 🚀

0개의 댓글