Hyperledger

본문 바로가기
사이트 내 전체검색


Hyperledger
Hyperledger

6. Flask 로 간단한 REST API 작성하기

페이지 정보

작성자 관리자 댓글 0건 조회 2,796회 작성일 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"
}

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.