1. API문서의 정보 입력
from flask_restx import Api
api = Api(
version='0.1',
title='my API server',
description='나의 API 서버',
terms_url='/',
contact="asdf@naver.com"
)
2. 네임스페이스의 이름과 설명 입력
from flask_restx import Resource, Namespace, fields
ns = Namespace(
name="namespace1",
description="네임스페이스1"
)
3. 쿼리스트링 파라미터 입력
from flask_restx import reqparse, Resource
input = reqparse.RequestParser()
input.add_argument('abc', type=int, default=10, help='안녕!')
input.add_argument('ddd', type=str, default='asdfasdf', help='안녕!')
@ns.route('')
class Manager(Resource):
@ns.expect(input)
@ns.response(200, 'Success', output)
@ns.response(500, 'Failed')
def get(self):
recipe_result = recipe()
return recipe_result
4. url 파라미터 입력
@api.route('/my-resource/<id>', endpoint='my-resource')
@api.doc(params={'id': 'An ID'})
class MyResource(Resource):
pass
5. post body 파라미터 입력
input = ns.model('input', {
'image0': fields.String(description='asdfsdf', required=True, example="sdfsdf"),
})
@ns.route('')
class Manager(Resource):
@ns.expect(input)
@ns.response(200, 'Success', output)
@ns.response(500, 'Failed')
def get(self):
recipe_result = recipe()
return recipe_result
6. 리턴값 입력
output = ns.model('output', {
'image0': fields.String(description='asdfsdf', required=True, example="sdfsdf"),
})
@ns.route('')
class Manager(Resource):
@ns.expect(input)
@ns.response(200, 'Success', output)
@ns.response(500, 'Failed')
def get(self):
recipe_result = recipe()
return recipe_result
7. api에 대한 설명 입력
@ns.route('')
class Manager(Resource):
@ns.expect(input)
@ns.response(200, 'Success', output)
@ns.response(500, 'Failed')
def post(self):
"""이 api에 대한 설명입니다."""
return {"hello":"hello"}, 200
자세한 내용은 공식 문서를 참고하세요
https://flask-restx.readthedocs.io/en/latest/swagger.html