엔드포인트 : API 서버가 제공하는 통신 채널 혹은 접점
프론트엔드 서버의 클라이언트가 백엔드 API 서버와 통신할 때 엔드포인트에 접속하는 형태로 통신
각 엔드포인트는 고유의 URL 주소를 가지게 되며, 고유의 URL 주소를 통해 해당 포인트에 접속
각 엔드포인트는 고유의 기능을 담당
이 것들이 모여 하나의 API를 구성
ex) sign up, post, find 엔드포인트 -> sns 서비스 api
ping 엔드포인트는 "pong"이라는 텍스트를 return 함
-> 현재 운행되고 있는지 아닌지 정지된 상태인지를 간단히 확인할 때 사용
-> 헬스 체크 엔드포인트라고 불림
-> API 서버에 접속하지 않고 해당 API의 정상 운행 여부 체크
1) 디렉터리 생성 및 이동
mkdir -p ~/Projects/api
cd ~/Proejcts/api
2) app.py 생성
vim app.py
3) 작성
- i를 누르고 작성
- esc-> : -> wq -> enter 하면 저장
from flask import Flask
app = Flask(__name__)
@app.route("/ping", methods=['GET'])
def ping():
return "pong"
- app 변수가 API 애플리케이션임
- Flask의 route 데코레이터를 사용하여 엔드포인트를 등록
4) 실행
FLASK_APP=app.py FLASK_DEBUG=1 flask run
- app.py 가 있는 곳에서 실행하기
- DEBUG=1이면 활성화
-> 코드 수정시 자동 재시작 됨
-> 개발시 유용
$ FLASK_APP=app.py FLASK_DEBUG=1 flask run
* Serving Flask app "app.py" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 142-243-606
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
위 처럼 실행 됨
이제 테스트 해보자
5) httpie 설치
mac -> brew install httpie
ubuntu -> sudo apt install htttpie
env -> pip install httpie
6) http 요청
http -v GET http://localhost:5000/ping
shell을 하나 더 만들어서 하기
pong 이라고 온다면 제대로 실행됨
$ http -v GET localhost:5000/ping
GET /ping HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: localhost:5000
User-Agent: HTTPie/2.4.0
HTTP/1.0 200 OK
Content-Length: 4
Content-Type: text/html; charset=utf-8
Date: Mon, 15 Feb 2021 13:28:21 GMT
Server: Werkzeug/1.0.1 Python/3.8.5
pong
API를 개발하고 실행하고 테스트하는 과정임
HTTP 개념이 중요함
반응형
'SW ENGINEERING > Flask' 카테고리의 다른 글
API 개발하기(6) - 미니터(Miniter) 개발하기(2) (0) | 2021.02.15 |
---|---|
API 개발하기(5) - 미니터(Miniter) 개발하기(1) (0) | 2021.02.15 |
API 개발하기(4) - API 엔드포인트 아키텍처 패턴 (0) | 2021.02.08 |
API 개발하기(3) - HTTP 구조 및 핵심 요소 (0) | 2021.02.08 |
API 개발하기 (1) - 파이썬, 미니콘다, flask 설치 (0) | 2021.02.07 |
최근댓글