Я пытаюсь создать спокойный API, и я борюсь за то, как сериализовать данные JSON на HTTP query string.
Существует ряд обязательных и необязательных аргументов, которые должны быть переданы в запросе, например (представленный как объект JSON ниже):
{
"-columns" : [
"name",
"column"
],
"-where" : {
"-or" : {
"customer_id" : 1,
"services" : "schedule"
}
},
"-limit" : 5,
"return" : "table"
}
Мне нужно поддерживать различное количество разных клиентов, поэтому я ищу стандартизованный способ преобразования этого json-объекта в строку запроса. Есть ли он и как он выглядит?
Другая альтернатива - позволить пользователям просто пройти по объекту json в теле сообщения, но я прочитал, что я должен его избегать (HTTP GET с телом запроса).
Любые мысли?
Изменить для пояснения:
Перечислите, как некоторые разные языки кодируют данный json-объект выше:
-
jQueryс помощью$.param: -columns [] = name & -columns [] = column & -where [-or] [customer_id] = 1 & -where [-or] [services] = schedule & предел = 5 &ы; возврат = колонок -
PHPс помощьюhttp_build_query: -columns [0] = name & -columns [1] = column & -where [-or] [customer_id] = 1 & -where [-or] [services] = schedule &; -предел = 5 &ы; возврат = колонок -
Perlс помощьюURI::query_form: -columns = name & -columns = column & -where = HASH (0x59d6eb8) & -limit = 5 & return = column -
Perlс помощьюcomplex_to_query: -columns: 0 = name & -columns: 1 = column & -limit = 5 & -where.- или .customer_id = 1 & -where.-or.services = schedule & возврат = столбец
jQuery и PHP очень похожи. Perl, использующий complex_to_query, также очень похож на них. Но никто не выглядит точно таким же.

