REST API를 생성하고 호출하기
REST API호출은 클라이언트와 REST API서버 사이의 커뮤니케이션으로 이루어 집니다. 간략한 커뮤니케이션 방법을 아래 그래프로 표현합니다.
우선 REST API서버를 대신할 간단한 서버를 만들어 보겠습니다. Flask를 이용해서 진행합니다. 이를 위해서 먼저 Python Flask를 설치하고 다음과 같이 Python 스크립트를 작성하여 간단한 REST API를 생성합니다. 파이썬 코드는 app.py로 파일명을 생성하겠습니다.
pip3 install Flask
# app.py
from flask import Flask, jsonify
app = Flask(__name__)
# 가상의 REST API 함수
@app.route('/api/example', methods=['GET'])
def example_api():
data = {'message': 'This is a sample response from the API!'}
return jsonify(data)
if __name__ == '__main__':
app.run(debug=True)
코드를 간단하게 알아봅니다. 위 코드에서 /api/example 엔드포인트에 대한 GET 요청을 처리하고, JSON 형식의 응답을 반환하는 가상의 REST API 함수를 정의했습니다. 실행을 위해서 command 창에서 python으로 파일을 실행합니다. 이제 REST API를 위한 서버단을 구현했습니다.
python app.py
CURL을 사용하여 호출하기
이제 위에서 정의한 REST API를 CURL을 사용하여 호출할 수 있습니다. 터미널 또는 명령 프롬프트에서 다음 명령을 실행합니다. CLIENT도 다양할 수 있으나 주로 사용하는 CURL과 Python의 REQUEST라이브러리 방법을 정리합니다.
curl -X GET http://localhost:5000/api/example
이 명령은 http://localhost:5000/api/example 엔드포인트에 GET 요청을 보내고 응답을 출력합니다.
curl -X GET http://localhost:5000/api/example
{
"message": "This is a sample response from the API!"
}
결과로 서버에서 정의한 문자열이 리턴된 것을 확인할 수 있습니다.
Python으로 REST API 호출하기
Python에서는 requests 라이브러리를 사용하여 REST API를 호출할 수 있습니다. 먼저 requests와 certifi 라이브러리를 설치합니다.
pip3 install requests
pip3 install certifi
# caller.py
import requests
# REST API 호출
response = requests.get('http://localhost:5000/api/example')
# 응답 확인
if response.status_code == 200:
print('API 호출 성공!')
print('응답 데이터:', response.json())
else:
print('API 호출 실패:', response.status_code)
이 코드는 http://localhost:5000/api/example 엔드포인트에 GET 요청을 보내고, 응답을 확인하여 성공 또는 실패 여부를 출력합니다. 성공한 경우 응답 데이터도 출력합니다.
API 호출 성공!
응답 데이터: {'message': 'This is a sample response from the API!'}
파일을 caller.py로 저장한 후 python caller.py로 REST API 호출부를 실행하면 위와같이 서버에서 정의한 문자가 반환됩닏다.
'Programming' 카테고리의 다른 글
Airflow Docker Volume 마운트하기 (0) | 2024.03.19 |
---|---|
Class Diagram 작성하기 - PlantUML (0) | 2024.03.19 |
REST API(Representational State Transfer API) (1) | 2024.03.17 |
MongoDB 사용법 (SQL과 비교) (2) | 2024.03.16 |
Plotly로 막대 그래프 그리기와 색상 변경하기 (0) | 2024.03.15 |