[TIL-20210625] API

Pizzahand·2021년 6월 27일
0

TIL

목록 보기
19/28
post-custom-banner

API

API(Application Programming Interface 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.

REST API

REST API에서 REST는 “Representational State Transfer”의 약자로, 웹에서 사용되는 모든 자원을 HTTP URI로 표현하고, HTTP Method를 통해 요청과 응답을 정의하는 방식을 말한다. REST API를 사용한다는 것은 REST 아키텍처의 제약 조건을 준수한다는 말이다.

REST API 디자인

REST API는 공식적으로 정해진 뚜렷한 규격이 없다. 그렇다 보니, 개발자에 따라 REST API 특징(원칙)에 맞춰 조금씩 다른 모습을 하고 있다.

REST API 설계시 가장 중요한 두 가지

  • URI는 정보의 리소스를 표현한다.
  • 리소스에 대한 상태 정의는 HTTP method(GET, POST, PUT, DELETE...)로 표현한다.

OPEN API

정부에서 제공하는 공공데이터가 있다. 공공데이터에 쉽게 접근할 수 있도록 정부는 Open API의 형태로 공공데이터를 제공하고 있다. 이 API에는 "Open"이라는 키워드가 붙어 있다. 글자 그대로 누구에게나 열려있는 API이다. 그러나 "무제한으로 이용할 수 있다"는 의미는 아니다. 기관이나 API마다 정해진 이용 수칙이 있고, 그 이용 수칙에 따라 제한사항(가격, 정보의 제한 등)이 있을 수 있다.

API Key

API를 이용하기 위해서는 API Key가 필요하다. API key는 서버의 문을 여는 열쇠라고 생각할 수 있다. 클라이언트의 요청에 따라 서버에서 응답한다는 말은 결국 서버를 운용하는 데에 비용이 발생한다는 말이다. 따라서 서버 입장에서 아무런 조건 없이 익명의 클라이언트에게 데이터를 제공할 의무도, 이유도 없다.(가끔 API key가 필요하지 않은 경우도 있습니다.)
그래서 로그인된 이용자에게만 자원에 접근할 수 있는 권한을 API Key의 형태로 제공하고, 데이터를 요청할 때 API key를 같이 전달해야만 원하는 응답을 받을 수 있다.

HTTP API 테스트 도구

웹 개발에서 사용하는 대표적인 클라이언트는 브라우저입니다. 브라우저는 서버에 HTTP 요청을 보낼 수 있는 훌륭한 도구이지만, 주로 웹 페이지를 받아오는 GET 요청에 사용합니다. 브라우저의 주소창에 URL을 입력하면, 해당 URL의 root-endpoint로 GET 요청을 보냅니다. 테스트를 위해 GET이 아닌 다른 요청을 보내려면, 개발자 도구의 콘솔 창에서 내장 함수 fetch를 사용해야 합니다.

매번 코드를 작성할 수는 있습니다. 그러나 테스트를 위해 매번 코드를 작성하는 건 상당히 번거로운 작업입니다. 매번 코드를 작성하는 것 대신에, HTTP 요청을 테스트할 수 있는 다양한 도구가 있습니다. 많은 API가 HTTP 프로토콜을 이용하므로, API 테스트 도구라고 부릅니다. 이러한 API 테스트 도구는 클라이언트 입장에서 서버 API를 테스트하거나, API를 만드는 과정에서도 매우 유용합니다.

HTTP API 테스트 도구 (CLI)

  • curl (대부분의 리눅스 환경에 내장되어 있습니다.)
  • wuzz

HTTP API 테스트 도구 (GUI)

profile
재밌게 코딩하고 싶은 개발자!
post-custom-banner

1개의 댓글

comment-user-thumbnail
2021년 6월 27일

나 날씨 API 써봤다!!!!!!!!

답글 달기