1. API 란 무엇일까?
API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말이다.
즉, 우리가 앱을 개발을 편하게 하기 위해 제공되는 인터페이스라는 것이다.
1 - 1 그렇다면 인터페이스는 무엇인가?
인터페이스는 매개체를 말한다.
예를 들어, 우리는 윈도우에서 프로그램을 개발할 때, 윈도우를 직접 구현하는가?
그렇지 않다. 윈도우에서 제공해주는 UI, 파일 입출력, 소켓 통신 기능 등등
이미 윈도우에서 개발한 기능이며, 윈도우에서 인터페이스를 개발 및 제공하며, 우리는 단순히 이를 호출해서 간단히 활용할 수 있다.
2. API 서버란?
API 는 결국 API 를 제공하는 형태가 서버의 형태인 것을 의미한다.
클라이언트에서 원하는 데이터들을 서버로 요청을 하면서 우리는 기능을 완성할 수 있다.
예를 들어, 롤 전적 검색 기능을 구현하려고 한다면 이 프로그램을 독자적으로 완성할 수 있을까?
물론, 크롤링을 통해서 데이터를 긁어와서 구현은 가능하지만 너무 고된일이며, 라이엇에서도 원치 않을 것이다.
라이엇에서는 API 를 제공해주고 있어서, 여러 가지 전적 정보를 검색할 수 있다.
API 서버는 클라이언트에서 원하는 기능을 규격이 있는 형태로 제공하는 것을 의미한다.
2 - 1 REST API
REST API 는 REST 의 원리를 따르는 API 다.
REST 는 다음 처럼 설명된다.
- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
- HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
- 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다.
결론적으로는 REST 는 HTTP 프로토콜을 기반으로 통신한다는 것이다.
설명이 너무 길었다...
파이썬 서버 구축 전에, 파이썬 환경부터 구성하기 바란다.
https://victorygamestudio.tistory.com/30
[파이썬] vscode 파이썬 설치하기
1. Vscode 설치 파이썬을 다른 에디터로 개발할 수 있겠지만, 가장 보편화된 에디터를 설치해보자. https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and op
victorygamestudio.tistory.com
3. 파이썬 API 서버 구축
시작하기 전에, 코드에 필요한 것들을 설치해야한다.
cmd 창을 열고 다음 명령어들을 통해 다운받는다.
pip install Flask
pip install requests
파이썬을 열고 다음 코드를 작성하고 실행한다.
from flask import Flask, request, json, jsonify
app = Flask(__name__)
@app.route("/logstash/logstore", methods=['POST'])
def Logstore():
params = request.get_json()
print("받은 Json 데이터 ", params)
response = {
"result": "ok"
}
return jsonify(response)
app.run(debug=True, host='0.0.0.0', port=8080)
정상적으로 API 서버가 열였다.
우리가 눈여겨보아야할 것은 다음이다.
@app.route("/logstash/logstore", methods=['POST'])
http://127.0.0.1:8080/logstash/logstore
url 을 통해서 body 에 데이터를 넣어주면, REST 규격에 맞는 모든 프로그램으로부터 함수를 호출하게 된다.
3 - 1 API 호출 클라이언트
API 서버를 구현했으니 API 를 호출하는 클라이언트를 개발해보겠다.
파일을 새로 생성해서 코드를 넣어보자.
난, 로그 서버를 구현 계획 중이기 때문에 log 로 남겨질만한 메시지를 넣었다.
import requests
import json
# URL
url = "http://127.0.0.1:8080/logstash/logstore"
# headers
headers = {
"Content-Type": "application/json"
}
# data
temp = {
"log": "[OnDisplay] m_display is null",
}
# 딕셔너리를 JSON으로 변환
data = json.dumps(temp)
response = requests.post(url, headers=headers, data=data)
print("response: ", response)
print("response.text: ", response.text)
'파이썬' 카테고리의 다른 글
[파이썬] vscode 파이썬 설치하기 (2) | 2023.10.22 |
---|