Я документирую свои конечные точки REST с помощью Flask -restx (Python 2.7), и параметры для конечных точек получают очень странную сортировку в Swagger. В настоящее время обязательные параметры не всегда являются первыми в списке.
Вывод в Swagger
Кажется, что это способ каким-то образом отсортировать параметры с помощью "sortParamsByRequiredFlag ", но я не вижу, где я могу это установить. Кто-нибудь знает?
Мой код для одной из конечных точек:
@g_api.route('/apx_export', methods=['GET'])
@g_api.doc(params={
'date_time_start': {
'required': True,
'type': 'string',
'format': 'YYYY-MM-DD',
'description': 'Start date'},
'date_time_end': {
'required': False,
'type': 'string',
'format': 'YYYY-MM-DD',
'description': 'End date'},
'portfolio': {
'required': False,
'type': 'string',
'description': 'The apx id of the account or portfolio to be filtered on'}, })
class ApxExport(Resource):
def get(self):
date_time_start = _unicode_to_latin1(flask.request.args.get(key='date_time_start', default=None, type=str))
date_time_end = _unicode_to_latin1(flask.request.args.get('date_time_end', None))
apx_portfolio = _unicode_to_latin1(flask.request.args.get('portfolio', None))
if date_time_start is None:
def apx_error_binder():
raise ServerError('apx_export: date_time_start is unassigned', status_code=400, include_traceback=False)
return QueuedCall.redirect(apx_error_binder)
def apx_export_binder():
return ipm.ats.apx_export.apx_export(date_time_start, date_time_end, apx_portfolio)
return QueuedCall.redirect(apx_export_binder)
Вывод в Swagger находится в следующем порядке:
date_time_end , строка ($ ГГГГ-ММ-ДД), (запрос), Дата окончания
портфель , строка, (запрос), идентификатор apx счета или портфеля, который необходимо отфильтровать по
date_time_start *, строка ($ YYYY-MM-DD), (запрос), дата начала