[TIL] <2020.05.20> RESTAPI

이성진·2020년 5월 20일
0

이 글은 유튜브 '얄팍한 코딩사전'을 참고하였음을 밝힙니다.


Rest api란 어떤 기술이나 제품을 말하는 것이 아닌, 개발자들 사이에 널리 쓰이는 일종의 형식 입니다.

그렇기 때문에 어떤 프로그래밍 언어를 쓰든 이 형식에 맞춰서 기능을 만들어내면 그것이 Rest api가 되는 것입니다.

API란?

어떤 제품을 만들면 사용자가 그 제품을 이용할 수 있도록 제공해야 합니다.
예를 들어, TV는 키거나 끄고, 음량을 조절할 수 있어야 하고, 컴퓨터에는 키보드, 마우스가 있습니다.
이렇게 제품과 사용자 간의 소통을 돕을 수 있도록 하는 것을 인터페이스라고 합니다.

사용자가 원하는 대로 사이트, 앱을 제어할 수 있도록 하는 버튼, 스크롤 바, 브라우저 창 등 소프트웨어적인 장치가 마련되어 있습니다. 이것들을 우리는 UI(User Interface)라고 부릅니다.

또, 사용자와 소프트웨어 간이 아니라 소프트웨어와 소프트웨어 간의 소통을 돕는 창구도 필요할 것입니다.
예를 들어, 기상청 서버에서 데이터를 실시간으로 받아와 보여주는 웹, 앱 등이 있다고 하면 이 웹과 앱은 서버로부터 일정한 지정된 형식 으로 요청을 보내면 요청에 맞는 답이 올거라는 메뉴얼이 있으면 누구든 이걸 이용해서 기상청 서버를 사용하는 소프트웨어를 만들 수 있습니다.

이처럼 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 Application Programming Interface 라고 합니다.

간단하게, "이 함수를 넣으면 소프트웨어가 이렇게 해 준다"는걸 알면 개발자들은 그 명령어들로 코드를 짜면 되는거죠.

REST API란?

REST API는 오늘날 널리 사용되는 REST란 형식의 API입니다.

REST의 가장 중요한 특성은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능하다는 것입니다.

일반적으로 API를 만들때면 URI를 통해 C.R.U.D(Create, Read, Update, Delete)를 수행합니다.

그런데 문제는 여기있습니다.
URI를 이상하게 지어도 목적에 맞는 수행만 잘 이루어진다면 상관이 없을 것이고 POST 요청 하나만으로도 CRUD의 모든 행동을 수행할 수 있습니다. 하지만 개발은 혼자하는 것이 아니기 때문에 누구든 각 요청의 의도를 쉽게 파악할 수 있어야 합니다.

따라서 아래와 같은 요청 형식을 따릅니다.

  • GET
    - Read, 조회하는데 사용합니다.
  • POSTR
    - UPDATE
    • ex) https://(domain)/classes/2/students/14
    • 학생을 식별할 수 있는 index를 URI에 추가한 뒤 변경할 정보를 이번에도 Body에 실어보내면 update의 행위를 하는 것입니다.
    • 여기서 잠깐! PUT과 PATCH의 차이점: 통상적으로 PUT은 변경할 URI의 전체 데이터를 바꿀 때, PATCH는 일부분 수정할 때 사용합니다.
  • DELETE
    - DELETE

REST의 규칙

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

    1. resource는 동사보다는 명사를, 대문자보다는 소문자를 사용한다.
    2. resource의 스토어 이름으로는 복수 명사를 사용해야 한다.
  2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE 등)으로 표현한다.

    1. HTTP Method나 동사표현이 URI에 들어가면 안됩니다.
    2. :id와 같이 변하는 값은 하나의 특정 resource를 나타내는 고유값이어야 합니다.

출처 One IT's velog by 아이톤

결국 REST API란, HTTP 요청을 보낼 때 어떤 URI에 어떤 메소드를 사용할지 개발자들 사이에서 널리 지켜지는 약속입니다.

profile
개발보다 회사 매출에 영향력을 주는 개발자

0개의 댓글