본문 바로가기
기초 튼튼탄탄탄

비전공자를 위한 REST API 개념정리 (생기초 ver)

by 잇서니 2019. 12. 3.
반응형

API 란 무엇인가

Application Programming Interface 응용프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스이다.

요청(Request) - 응답(Response) 구조이다.

 

 

HTTP 요청포맷

 

 

HTTP 응답포맷

 

 

 

API 사례

웹서비스(응용프로그램)를 개발하려고 한다. 지도 기능을 넣고 싶다. 이 때 카카오톡 지도 API를 연동하여 지도 기능을 사용할 수 있다. https://developers.kakao.com/features/platform 카카오 API 사이트에 들어가보면, 카카오에서 제공하는 API에 대한 가이드가 나와있다. 로그인, 지도, 검색 등 다양한 기능을 제공해준다.  

 


 

REST API 란 무엇인가

REpresentaional State Transfer. 텍스트, 이미지, 동영상 등을 모두 하나의 자원으로 규정하여 각 자원에 고유한 URI(UniformResource Identifier)를 부여하여, 자원에 대한 CRUD(Create, Read, Update, Delete)를 각각 HTTP의 메서드(POST, GET, PUT, DELETE)를 이용해서 처리하는 것

 

REST API 요청에 사용되는 HTTP 메소드

Method 기능
POST 리소스 생성 (create)
GET 리소스 조회 (read)
PUT 리소스 수정 (update)
DELETE 리소스 삭제 (delete)

 

리눅스 터미널 상에서 REST API 요청을 날려보자. curl 명령어를 사용한다.

curl -i -H 'Content-Type: application/json' -X GET http://ndmanage2.sunny.com:8080/api/healthy
  • -i : header와 body 내용을 모두 봄
  • -I : header 내용만 봄
  • -H : 요청 header를 지정함
더보기

● Content-Type
● Authentication

  • -X : 요청 메소드를 지정함 (기본은 GET)
  • uri : 정보의 리소스를 표현함. Restful 하도록 설계되어야 함

 

응답결과는 아래와 같은 형식이다.

HTTP/1.1 200 OK
accept-ranges: bytes
cache-control: public, max-age=0
content-length: 928
content-type: text/html; charset=UTF-8
date: Wed, 04 Jul 2018 01:42:11 GMT
etag: W/"3a0-16462bb9496"
last-modified: Wed, 04 Jul 2018 00:40:17 GMT
x-powered-by: Express

 

또는, 툴을 사용하여 REST API 요청을 날려보자. 

https://www.getpostman.com

 

 

NDAP API

파이썬 모듈로 API 요청기능을 구현하였다. 내부적으로 API 요청을 받아 서버에서 어떻게 처리하는지는 코드 까봐야 된다.

  • GET 메서드를 사용하여 mgmt 노드 간의 healthy 체크하는 기능
  • POST 메서드를 사용하여 DB 테이블에 host role 등록하는 기능

 

참고자료

https://meetup.toast.com/posts/92

 

REST API 제대로 알고 사용하기 : TOAST Meetup

REST API 제대로 알고 사용하기

meetup.toast.com

 

https://flyingdcat4.tistory.com/73

https://spoqa.github.io/2013/06/11/more-restful-interface.html

https://pro-self-studier.tistory.com/126

evan-moon.github.io/2020/04/07/about-restful-api/

 

프론트엔드와 백엔드가 소통하는 엔드포인트, RESTful API

이번 포스팅에서는 프론트엔드 개발자와 백엔드 개발자가 만나는 지점인 API에 대한 이야기를 해보려고한다. 일반적으로 앱이나 웹 상에서 작동하는 어플리케이션을 개발할 때는 주로 HTTP나 HTTP

evan-moon.github.io

 

반응형

댓글