2015-08-05 3 views

ответ

3

Немного проб и ошибок показывает, что это так:

example.com?colors=['cyan','magenta','yellow','black']

+0

Да, это классический 'JSON', и это то, что анализирует« API Gateway ». – kixorz

+1

@napalm Проблема в том, что существует множество фреймворков, использующих такие соглашения; 'Колонки [0] [данные] = идентификатор и столбцов [0] [имя] = ID и столбцы [0] [поиск] = true'! – renatoargh

+0

например: https://github.com/hapijs/qs – renatoargh

1

Одна вещь, которую вы не можете сделать, это дублировали ключи строки запроса Param согласно https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html:

дублированные заголовки не поддерживаются.

API Gateway сопоставляет параметры объекту JSON, так как каждый элемент имеет свой уникальный ключ, вы не получите никакого сгибания.

Ваш вариант хороший, но я провел мозговой штурм некоторых других вариантов. Вы могли бы сделать что-то вроде добавления indicies в квадратных скобках:

example.com?colors[0]=cyan&colors[1]=magenta&colors[2]=yellow&colors[3]=black 

Вы можете отправить строку запроса в теле POST, если вы были готовы поменять от GET на POST. Затем вы можете самостоятельно разобрать сырую строку запроса. Вы можете даже иметь повторяющиеся парамеры, потому что вы разбираете его.

?colors=cyan&colors=magenta&colors=yellow&colors=black 

Другая опция POST - отправить массив JSON в корпус POST. Я знаю, что POST работает не так просто, как GET, но это вариант.

["cyan","magenta","yellow","black"] 
+0

Я нашел добавление индикаторов простым и эффективным, спасибо за предложение. – homerjam

0

Как обсуждалось в @ kjs3 ответ API шлюз не поддерживает повторяющиеся параметры в строке запроса или заголовков. Однако вы можете использовать формат массива одиночных параметров.

Поддержка дублирующих ключей параметров + значения - это то, что мы хотим сделать, но на данный момент у меня нет ETA.

Смежные вопросы