이것저것 찾아보다가 flask_apispec의 use_kwargs데코레이터를 알게 됐고, 인자로 객체와 locations를 넣는 것을 봤다.
@use_kwargs(PostGetSchema, locations=['json'])
def 함수():
blahblah
json이라고 되어있는 것을 봤을 때 무언가 주거나 받는 형태에 대한 내용이란 것을 추측할 수 있다. 공식 문서의 소스코드를 보면, parse를 하기 위한 request locatin이라고 나와있다. 파라미터에 locations=None이라고 되어있기 때문에 어떤 위치의 요청을 받아 kwargs에 저장할지를 적어주어야 한다.
:param locations: Default request locations to parse
비슷한 라이브러리의 조금 더 친절한 설명을 보면, Request “Locations”는 기본적으로 json으로서 request body에서 arguments를 찾지만 데이터를 로드하기 위해서 다른 위치를 구체적으로 명시할 수 있다고 나와있다.
flask_apispec과 동일한지는 모르겠지만 locations에 올 수 있는 것들은 querystring, json, form, headers, cookies, files라고 한다.
#request object를 parsing, validation해주는 라이브러리 webargs의 설명
@app.route("/register")
@use_args(user_args, location="form")
def register(args):
return "registration page"