API 서버란 무엇일까?

배성훈·2020년 4월 7일
1

기술에 대하여

목록 보기
1/1

API

Web과App 에서 사용되는 Api는 보통 서비스에서 소스는 공개하지않고 해당 기능을 제공하려고 할때 이용합니다.
이러한 api를 바탕으로 Google 로그인이나 Naver 지도등의 기능을 활용할 수 있게됩니다. 이처럼 우리는 다른 서비스의 기능을 이용하고자 할때 api를 통해서 이용하고는 합니다.

REST API

Representational State Transfer (표현 상태 전이)
HTTP 기반으로 필요한 자원에 접근하는 방식을 정해해놓은 아키텍처입니다.

REST API 의 특징

  • 서버에 있는 resource는 각각의 바로접근 가능한 고유 URI가 존재한다.
  • 모든 요청은 요청마다 정보를 주기 때문에 Session을 보관할 필요가 없습니다. 이 때문에 서비스에 자유도가 높아지고 유연한 아키텍쳐 적응이 가능합니다.
  • HTTP Method 를 이용합니다. (GET, POST, PUT, DELETE)
  • 서비스 내에 하나의 Resource가 주변에 연관된 Resource들과 연결되어 표현이 되어야 합니다.

REST API 의 구성

REST API는 Resource, Method, Message 세가지로 구성되어 있습니다.

Resource

REST 는 자원접근시 URI로 하게 됩니다. 이 때문에 URI설계시 규칙에 유의하여 설계하여야합니다.

  • ' / '의 쓰임새는 계층 관계를 표현시 사용합니다.
  • URI를 이루는 resource들은 동사보다는 명사로 이루어져야 합니다.
  • REST 리소스 간에는 연관 관계를 표현시 다음과 같은 방법을 사용합니다.

    /리소스명/리소스ID/관계가 있는 다른 리소스
    GET : /users/{userid}/devices (has 관계)

  • URI에서는 언더바 ( _ ) 보다 하이픈 ( - ) 을 권장합니다.
  • 소문자로 작성합니다.
  • 확장자는 포함시키지 않습니다.
    위와 같은 내용들을 유의해서 URI 설계를 하도록해야합니다.

HTTP Method

자원에 접근시 어떤 성격의 요청인지는 HTTP Method를 통해서 파악합니다.

  • GET - 해당 리소스를 조회합니다.
  • POST - URI를 요청시 리소스를 생성합니다.
  • PUT - 리소스를 수정합니다.
  • DELETE - 리소스를 삭제합니다.

Message

메시지는 HTTP header 와 body, status code 로 구성되어 있으며 메시지를 처리하기 위한 정보를 포함합니다.

  • Body - 자원에 대한 정보를 전달 ( JSON / XML / 사용자 정의 포맷)
  • Header - HTTP 바디에 어떤 Format 정보가 담겨있는가를 정의합니다. 요청 HTTP Header는 "Accept" 항목으로 응답 HTTP Header 는 "Content-Type" 으로 설명합니다.
  • 응답상태코드

REST API는 이를 통해서 언어와 플랫폼에서 독립적으로 구현이 가능하다는 장점이 있어서 많이 사용되고 있습니다. 또한 가장 대중적인 Protocol 인 HTTP 를 이용해서 활용도가 높고 쓰임새가 다양하는 장점으로 많은 인기를 누리고 있습니다.

profile
아.아?아!

0개의 댓글