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 요청을 날려보자.
NDAP API
파이썬 모듈로 API 요청기능을 구현하였다. 내부적으로 API 요청을 받아 서버에서 어떻게 처리하는지는 코드 까봐야 된다.
- GET 메서드를 사용하여 mgmt 노드 간의 healthy 체크하는 기능
- POST 메서드를 사용하여 DB 테이블에 host role 등록하는 기능
참고자료
https://meetup.toast.com/posts/92
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/
댓글