Web-API

2 분 소요

  • Intro
    • 클라이언트의 종류가 웹 브라우저, 안드로이드 앱, iOS 앱 등 다양해지면서 이러한 클라이언트들에게 정보를 제공하는 방식을 하나로 일원화시키고 싶어졌다.
    • 일원화시키는 방식 중에 대표적인 방식이 HTTP프로토콜로 API를 제공하는 것이다.
    • HTTP프로토콜로 제공하는 API를 REST API라고 한다.

API란?

  • API는 Application Programming Interface의 약자이다.
  • “API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
  • 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.
  • 참고 바로가기
  • 위의 URL주소를 가면 java 8의 API문서를 볼 수 있다. 자바 언어가 제공하는 클래스와 인터페이스에 대한 설명이 API문서이다. 자바 프로그래밍을 위해서는 자바 언어가 제공하는 것들이 어떤 것이 있는지를 알아야 한다. 절대값을 구하기 위해서는 어떻게 해야 할까? Java API문서를 읽어보면 답을 알 수 있다. Math클래스의 abs()메소드를 사용하면 된다는 것을 알 수 있다.
  • 해당 라이브러리를 사용할 때 구현코드를 알지 못해도 인터페이스만 알면 사용할 수 있다. 이렇게 프로그래밍을 할 때 필요한 인터페이스를 API라고 한다.

Rest API란?

  • REST는 REpresentational State Transfer라는 용어의 약자이다.
  • REST API란 말 그대로 REST형식의 API를 말한다.
  • HTTP프로토콜로 제공하는 API를 REST API라고 한다.
  • REST API란 핵심 컨텐츠 및 기능을 외부 사이트에서 활용할 수 있도록 제공되는 인터페이스이다.
  • 예를 들어, 네이버에서 블로그에 글을 저장하거나, 글 목록을 읽어갈 수 있도록 외부에 기능을 제공하거나 우체국에서 우편번호를 조회할 수 있는 기능을 제거하거나, 구글에서 구글 지도를 사용할 수 있도록 제공하는 것들을 말한다.

  • 웹 브라우저 뿐만 아니라 앱 등 다양한 클라이언트가 등장하면서 그러한 클라이언트들에게 대응하기 위해 REST API가 널리 사용되기 시작했다.
  • 서비스 업체들이 다양한 REST API를 제공함으로써, 클라이언트는 이러한 REST API들을 조합한 어플리케이션을 만들 수 있게 되었다.
  • 이를 매시업(Mashup)이라고 한다.
  • 다음은 유명 사이트에서 제공하는 API 관련된 문서 링크이다.

RESP API관련 글

Web API

  • Web API 디자인 가이드
    1. URI는 정보의 자원을 표현해야 한다.
    2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
      • 자원에 대한 행위는 HTTP Method로 표현
    • get → select
    • post → insert
    • put → update
    • delete → delete
  • URI는 정보의 자원을 표현해야 한다.
    • GET /members
      • 위의 표현은 맴버의 모든 정보를 달라는 요청
    • GET /members/delete/1
      • GET은 정보를 요청할 때 사용, 위와 같이 동사로 삭제를 표현하면 안됨.
    • DELETE /members/1
      • HTTP Method 중의 하나인 DELETE를 이용하여 삭제를 표현해야함.
  • 자원에 대한 행위는 HTTP Method로 표현
    • GET /members/1 (o)
    • GET /members/get/1 (x)
    • GET /members/add (x)
    • POST /members (o)
    • GET /members/update/1 (x)
    • PUT /members/1 (o)
    • GET /members/del/1 (x)
    • DELETE /members/1 (o)
  • 슬래시 구분자(/)는 계층을 나타낼 때 사용 http://domain/houses/apartments http://domain/departments/1/employees
    • URI 마지막 문자로 슬래시 구분자(/)를 포함하지 않는다.
    • 하이픈(-)은 URI가독성을 높일 때 사용한다.
    • 언더바(_)는 사용하지 않는다.
    • URI경로는 소문자만 사용한다.
    • RFC 3986(URI 문법 형식)은 URI스키마와 호스트를 제외하고는 대소문자를 구별한다.
    • 파일 확장자는 URI에 포함하지 않는다.
    • Accept Header를 사용한다.

카테고리:

업데이트:

댓글남기기