엔드포인트? api 서버가 제공하는 통신 채널 혹은 접점.
프론트엔드 서버 등의 클라이언트가 백엔드 api 서버와 통신할 때 엔드포인트에 접속하는 형태로 통신하게 됨.
각 엔드포인트는 고유의 URL 주소를 가지게 되고 그 주소를 통해 해당 엔드포인트에 접속할 수 있다.
각 엔드포인트는 고유의 기능을 담당하고 있다. 이러한 엔드포인트들이 모여서 하나의 API를 구성하는 것이다.
(EX. SNS서비스 API는 사용자 사인업, 로그인, 새로운 포스팅 생성, 친구맺기 등의 여러 엔드포인트로 구성)
Ping 엔드포인트는 단순히 pong 이라는 텍스트를 리턴하는 엔드포인트이다. 이는 주로 api 서버가 운행되는 중인지 정지된 상태인지를 간단히 확인할 때 체크하는 엔드포인트이다.
먼저 api 코드가 위치할 디렉터리 생성하자.
(api) yuz@DESKTOP-UK4R45C:/mnt/c/Users/이유진$ mkdir -p ~/Projects/api
나는 파이썬 안에서 (>>> mkdir~ ) 해서 계속 안됐었는데,
파이썬 나오고 api 실행한 후 해야 한다. ㅠ

1. flask 사용하기 위해 flask 클래스 import.
3. 임포트한 flask 클래스를 객체화시켜 app 라는 변수에 저장. 이 변수가 API 애플리케이션이다.
이 변수에 API 설정과 엔드포인트를 추가하면 API가 완성되는 것.
5. Flask route 데코레이터를 사용하여 엔드포인트를 등록한다.
그 다음에 나오는 ping 함수를 엔드포인트를 함수로 등록 하였으며,
고유 주소는 ping 이고 HTTP 메소드는 GET 으로 설정되어 등록.
7. Ping 함수 정의. route 데코레이터를 통해 엔드포인트로 등록된 함수이다.
이 파일의 코드에서 집중해야 할 부분은 엔드포인트를 지정하는 방법이다. Flask 에서는 route 데코레이터를 사용해 함수들을 엔드포인트로 등록하는 방식이 사용된다. 즉, Flask 에서 엔드포인트를 구현한다는 것은 결국 일반 함수를 구현하는 것과 큰 차이가 없다는 뜻이다.
http 요청과 응답이 오고가는 구조이다. /ping 주소에 GET 요청을 보내면 응답은 200 Ok 코드오ㅓ 함께 pong 이라는 텍스트를 보내는 것이다. Flask 가 HTTP 부분을 자동으로 처리해 준다.
PING 함수가 단순히 퐁 스트링을 리턴해도 Flask 가 자동으로 http 응답으로 변환시켜 준다. 그러므로 flask 사용하면 개발자는 최대한 일반 함수를 구현하듯 엔드포인트를 구현할 수 있다.
본격적으로 API 실행하기 위해 터미널에
FLASK_APP=app.py FLASK_DEBUG=1 flask run 을 입력한다.
플라스크 앱 환경변수에 Flask 앱을 실행시키는 파일을 지정해준다.(app.py)
지정된 파일이 명령어를 실행시키는 디렉터리에서 찾을 수 있어야 한다.
디버그 환경변수를 1로 지정해놓으면 디버그 모드가 활성화된다. 이 모드에서는 코드 수정 시 자동 재시작되어 자동으로 반영된다.
잘 돌아가는지 api 접속해 테스트하기 위해 httpie (터미널 명령어 환경에서 HTTP 요청 보낼 수 있게 해줌.) 명령어를 사용한다.
sudo apt install httpie
설치 후

-v : verbose 옵션. 해당 HTTP 요청과 응답에 관한 추가적인 정보를 출력한다.
FLASK RUN 을 통해 API 실행되고 있는 것을 알 수 있었고, 위를 통해 HTTP 요청에 "pong" 텍스트가 응답으로 왔다.
ping 엔드포인트가 제대로 실행되는 것을 확인한 것이다.
'Language > python' 카테고리의 다른 글
주피터로 flask - BeautifulSoup() (0) | 2021.02.17 |
---|---|
여러가지 표기법 (0) | 2021.02.09 |
본격적인 API 개발-미니터 만들기. (1) 회원가입, 트윗 글 엔드포인트 (0) | 2021.02.09 |
About HTTP (feat. 쿠키, 세션) (0) | 2021.01.29 |
Flask 소개,설치 (프레임워크, 라이브러리 차이점?) (0) | 2021.01.28 |