- 실전에 나가면 받을 API 설계서 형식은 하기와 같다.
- API 설계서를 보고 작업을 진행한다.
Request: 클라이언트가 서버에게 요청 보내는 것
Response: 서버가 클라이언트에게 응답을 보내는 것.
–Request–
POST http://127.0.0.1:6000/add_two_nums {“x”:30,”y”:100} |
–Response–
{“result”: 130} |
아래에서 코드를 작성해보자.
from flask import Flask, jsonify, request from http import HTTPStatus app = Flask(__name__) |
- 클라이언트로부터 뭔가를 받는 건 request 라이브러리에 기능이 다 있다.
@app.route('/add_two_nums', methods = ['POST']) def add(): # 클라이언트로부터 두 수를 받는다. data = request.get_json() ret = data['x'] + data['y'] result = {"result" : ret} return jsonify(result) |
- request.get_json(): 클라이언트에서 데이터를 받으면(request), flask에서 해당 함수를 이용해서 Json을 파이썬 데이터 형식으로 변환해서 가져올 수 있다.
- 물론 응답(respond)을 해줄 때도 Json 형식으로 전달해주어야한다.
웹브라우저에서 python app.py로 실행을 하면,
상기 이미지와 같이 제대로 뜨지 않는다.
‘Method Not Allowed’: 메소드가 유효하지 않다.
왜 그럴까?
- 위에서 언급했듯이, 우리가 사용하는 웹브라우저는 항상 GET 메소드로만 요청한다. GET이 디폴트이다.
- 따라서, 필자가 위에서 작성한 코드 /add_two_nums의 경로도 똑같이 GET으로 요청했다.
- 그렇지만, 코드에는 POST로 요청하게 명시하였고, GET관련 명령어는 여기에 없다.
ㄴ 필자는 POST만 허용했지, GET으로는 처리하지 않는다고 명시해놓은 것.
- 우리는 API를 만든 다음에, 반드시 테스트를 해봐야한다.
- 하나 만들때마다 직접 테스트 해봐야한다.
- 툴을 이용해 테스트를 한다 -> Postman프로그램을 이용한다.
postman 포스트 참고: https://yeo0616.tistory.com/168
'BackEnd > Python-Flask' 카테고리의 다른 글
[백엔드] Flask: Python에서 DB에 데이터 insert (0) | 2022.06.26 |
---|---|
[백엔드] Flask: Python으로 DB접속/이용순서 (0) | 2022.06.26 |
[백엔드] Flask: return 타입, jsonify() (0) | 2022.06.21 |
[백엔드] Flask : @app.route() 의미 (0) | 2022.06.21 |
[백엔드] Flask의 개념 및 Restful API 이용 (0) | 2022.06.21 |