API / REST API

cloud_oort·2022년 5월 27일
2
post-thumbnail

REST API란 REST 아키텍쳐의 제약조건을 준수하는 API를 뜻한다.

API?

API는 Application Programming Interface의 줄임말로 애플리케이션 소프트웨어를 구축하고 통합하는 정의 및 프로토콜이다.

라고.. 하는데 저렇게 말하면 알아듣기 쉽지 않다.

API를 정의하는 말들이 다양하여 최고로 이해가 잘 되는, 딱 하나의 정의를 적기가 정말 어려운 것 같다.
그 중에서도 개인적으로 이해가 잘 되었던 API정의를 두 가지 적어본다.

  • API는 정보 제공자와 사용자 간의 계약으로, 소비자에게 필요한 콘텐츠(호출)와 생산자에게 필요한 콘텐츠(응답)로 구성된다.
  • API는 소프트웨어와 소프트웨어 사이 데이터 전송을 가능하게 하는 프로그램

즉, 컴퓨터나 시스템과 상호작용하여 정보를 검색하거나 기능을 사용하고자 할 때, API는 사용자가 원하는 것을 시스템에 전달할 수 있게 지원하여 시스템이 이 요청을 이해하고 이행하도록 할 수 있다.

ex)

  • 웹 API는 클라이언트와 웹 리소스 즉 손님과 음식 사이 끼인 종업원이라 할 수 있다. 손님은 원하는 음식을 종업원에게 말해주고, 종업원은 주방에서 음식을 받아 내어준다.

  • 날씨 서비스 API의 경우, 사용자는 위치를 제공하고 생산자는 날씨를 제공하도록 계약, 지정할 수 있다.


REST API?

REST는 Representatioanl State Transfer의 줄임말이며,
REST API는 REST 아키텍쳐 스타일에 부합하는 API이다.

REST API를 공부하는 데에 있어서 너무 많은 정보가 있고, 각각의 정보가 조금씩 달라서 꽤나 힘들었다.
그러던 중 '우아한Tech, REST API' 유튜브 영상을 보게 되었다.
REST API를 창시한 Roy Fielding의 논문을 통해 설명을 해주었고 많은 도움을 받았다.

REST와 관련하여 여러 제약 조건이 있다.
1. Client server
2. Stateless
3. Cache
4. Uniform Interface
5. Layered System
6. Code-On-Demand

그 중에서 Uniform interface에 대해 알아보자.


Uniform interface

Uniform interface는 4가지 제약조건으로 구성되어 있다.
1. identification of resources(자원의 식별)
2. manupulation of resources through representations(표현을 통한 자원의 조작)
3. self-descriptive messages(자기 서술적인 메시지)
4. HATEOAS(hypermeida as the engine of applicatin state)

위의 4가지 조건을 확실히 충족해야 REST API라고 부를 수도 있다는 것이 필딩의 주장이다.

그럼 위 조건들을 좀 자세히 알아보자


1. identification of resources(자원의 식별)

REST에서 가장 중요한 기본적인 규칙은 두 가지이다.
URI는 자원을 표현하는 데에 집중하고
행위에 대한 정의는 HTTP Method를 통해 하는 것이 REST한 API를 설계하는 중심 규칙이다.

  • REST API는 인터넷 식별자(URI)와 HTTP 프로토콜을 기반으로 한다.

  • 데이터 포멧으로는 호환성이 좋은 JSON을 사용한다.

  • REST는 웹에 최적화되어 있고, 데이터 포맷이 JSON이기 때문에 브라우저들 간에 호환성이 좋다. 또한, 그 성능과 확장성이 뛰어나다.

- 클라이언트 요청

  • REST 서비스의 경우 URI를 통해 리소스를 식별한다.
  • 리소스에 대한 행위로서 다음과 같은 HTTP Method를 사용한다.
    (밑 예시보다 훨씬 많은 Method들이 존재한다.)
    • GET
    • POST
    • PUT
    • DELETE

- 서버 응답

  • 상태표시줄

    200: 일반 성공 응답
    201: POST 메서드 성공 응답
    400: 서버가 처리할 수 없는 잘못된 요청
    404: 리소스를 찾을 수 없음

요약

REST API는 REST 원칙을 잘 지킨 API를 말하며, 가장 큰 특징은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능한 형태를 말한다.

p.s.
아직은 많이 부족한 글입니다.
더 공부하여, 더 좋은 글로 바꾸어가겠습니다.


Reference

poiemaweb
https://aws.amazon.com/ko/what-is/restful-api/
carrotsman.log
MOONGCHI
신입 개발자의 하루

이미지 출처

profile
개발은 이해하는 것이 아니라 익숙해지는 것이다 - 생활코딩님

0개의 댓글