Я реализую приложение Flask с Flask RestPlus, которое должно получать список идентификаторов (целых чисел) на конечной точке HTTP GET, чтобы клиент приложения мог получить список результатов, соответствующих этим идентификаторам, например, с помощью ...
GET /resource/1,2,3,4
GET /resource?id=1,2,3
GET /resource?id=1&id=2&id=3
... который не поддерживается по умолчанию ни одним из конвертеров bultin werkzeug , но, следуя инструкциям в в этом сообщении stackoverflow синтаксический анализ URL работает правильнои я могу получить список идентификаторов с этим конвертером ...
class ListOfIntegerConverter(BaseConverter):
def __init__(self, url_map, randomify=False):
self.regex = r'\d+(?:,\d+)*,?'
def to_python(self, value):
return [int(x) for x in value.split(',')]
def to_url(self, value):
return ','.join(str(x) for x in value)
... который затем правильно регистрируется как указано здесь ...
app.url_map.converters['list_of_int'] = ListOfIntegerConverter
... и используется для разбора параметров url ...
@my_namespace.route('/<list_of_int:list_of_ids>/', methods=["GET"])
class MyResourceById(Resource):
def get(self, list_of_ids):
[print(id, type(id)) for id in list_of_ids]
... но сгенерированная документация swagger отображает поле в виде простой строки вместо массиваили список целых чисел, которые должны отображаться следующим образом ...
Я знаю, что Swagger поддерживает многозначные параметры , но я не могу заставить Flask RestPlus разорватьЭто поле соответственно.Есть ли кто-нибудь, кто знает, как это сделать, и который может помочь мне советом?
Заранее спасибо!:)