6. Flask 로 간단한 REST API 작성하기
페이지 정보
작성자 관리자 댓글 0건 조회 2,794회 작성일 19-11-27 23:52본문
6. Flask 로 간단한 REST API 작성하기
REST API 생성을 도와주는 모듈을 설치합니다. Endpoint URL을 클래스와 매핑시키는 것을 도와줍니다.
[root@localhost ~]# pip install flask-restful
‘/user’ post 요청으로 사용자를 생성하고 응답하는 api 를 작성합니다.
$ mkdir flask_restapi
$ cd flask_restapi
$ vi api.py
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class CreateUser(Resource):
def post(self):
return {'status': 'success'}
api.add_resource(CreateUser, '/user')
if __name__ == '__main__':
app.run(debug=True)
서버를 실행합니다.
[master@localhost flask_restapi]$ python api.py
* Serving Flask app "api" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 111-420-661
새로운 터미널창을 열고 다음과 같이 POST 요청한다.
[master@localhost ~]$ curl localhost:5000/user -d "wr_name=Jinkwan"
{
"status": "success"
}
REST API 테스트툴(curl)로 127.0.0.1:5000/user 요청을 수행하고 결과를 확인합니다.
REST API 테스트툴로는 윈도우 기반의 Insomnia 를 사용하여도 된다.
이제 email, user_name, password 파라미터를 추가하고 파서를 사용해 파라미터를 추출합니다.
$ vi api.py
from flask import Flask
from flask_restful import Resource, Api
from flask_restful import reqparse
app = Flask(__name__)
api = Api(app)
class CreateUser(Resource):
def post(self):
try:
parser = reqparse.RequestParser()
parser.add_argument('wr_email', type=str)
parser.add_argument('wr_name', type=str)
parser.add_argument('wr_password', type=str)
args = parser.parse_args()
_userEmail = args['wr_email']
_userName = args['wr_name']
_userPassword = args['wr_password']
return {'Email': args['wr_email'], 'UserName': args['wr_name'], 'Password': args['wr_password']}
except Exception as e:
return {'error': str(e)}
api.add_resource(CreateUser, '/user')
if __name__ == '__main__':
app.run(debug=True)
서버를 재시작합니다.
[Ctrl+C]를 통해 종료하고, 다시 실행한다.
[master@localhost flask_restapi]$ python api.py
* Serving Flask app "api" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 111-420-661
다시 REST API 테스트툴로 요청한다.
[master@localhost ~]$ curl localhost:5000/user -d "wr_name=Jinkwan&wr_email=leejinkwan@kunsan.ac.kr&wr_password=0000"
{
"Email": "leejinkwan@kunsan.ac.kr",
"Password": "0000",
"UserName": "Jinkwan"
}
댓글목록
등록된 댓글이 없습니다.