Я пытаюсь создать спокойный 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, также очень похож на них. Но никто не выглядит точно таким же.