Параметры заказа в Swagger с Python flask -restplus / x - PullRequest
0 голосов
/ 20 февраля 2020

Я документирую свои конечные точки 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), (запрос), дата начала

...