JSON в URL - правильно или неправильно - PullRequest
0 голосов
/ 03 февраля 2012

Недавно я приступил к обсуждению использования JSON в API.

Один аргумент для ввода строки запроса был в порядке, он действовал бы как параметр, извлекался с помощью $ _GET и декодировался в приложении.

index.php? action = {JSON}

Другой аргумент был задан только как $ _POST, аргумент против этого заключался в том, что URL станут длинными.

Так что вы думаете об использовании JSON в URL?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Моя личная мысль заключается в том, что лучше поместить его в POST, по нескольким причинам

  • GET намного проще для пользователей манипулировать. Хотя ПОСТ не в безопасности, люди не будут пытаться возиться с этим, если не знают как.
  • Хотя длинные, сложные URL-адреса, вероятно, более специфичны для конкретного человека (я могу не важно, длинные они или нет), это выгодно тем, что которые не заботятся не заботятся , но те, которые заботятся, ну, они волновало.

Более семантически выглядит, что вещи, которые меняют что-либо на сервере, всегда должны отправляться через POST, а вещи, которые меняют только то, что требуется, должны отправляться через GET. Из вашего вопроса не очень ясно, каково конечное намерение JSON, хотя я думаю, что ваше обсуждение менее конкретное и более абстрактное в этом отношении.

0 голосов
/ 03 февраля 2012

Обычно причиной использования JSON является то, что вы хотите иметь возможность инкапсулировать некоторый произвольный объем данных (список вещей, объекты, содержащие переменные данные и т. Д.). Поскольку вы очень ограничены в количестве символов, которое вы можете использовать в URL, вы сможете отправлять очень ограниченные объемы данных только в том случае, если вы решите передать их с помощью запроса GET. Вам также нужно будет кодировать / декодировать JSON, если он появляется как часть URL, что немного усложняет ситуацию. Если вы не уверены, сколько данных будет поступать таким образом, вам действительно нужно использовать POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...