Привет!
Я создаю некоторый веб-сервис с публичным API, доступным по HTTP. Так как API предполагается публичным, хочется учесть все подводные камни заранее — иначе придётся делать новую версию протокола и поддерживать обе — ужас :)
Общение между клиентом и сервером работает в лучших традициях HTTP: запрос-ответ. Все параметры запроса передаются в соответствии с правилами HTTP — через адресную строку для GET-запросов и через multipart/form-data для POST. Для разных задач — разные URL, например, запрос на логин отправляется по адресу
http://example.com/login, а на регистрацию — по адресу
http://example.com/register)
Однако, не очень понятно, как оформить передачу данных обратно клиенту. На данный момент, информацию о результате запроса я кодирую HTTP статусом (
200
,
403
,
404
,
500
, etc.), а если нужно что-то еще, то я просто передаю клиенту сплошным текстом значения в заданном порядке, разделённые символом-разделителем (например,
17:150:колбаса
) в теле ответа.
Я подумал было, что имеет смысл использовать для этого XML, ибо сейчас все так делают — наверно неспроста. Но, поизучав эту тему, понял, что при таком подходе принято и параметры запроса на сервер передавать в виде XML.
Как быть? Использовать простую строку параметров с разделителями или переходить на XML? Можно ли при этом отправлять данные серверу всё-таки в виде параметров запроса?
Интересуют ответы с точки зрения того, что принято или не принято и насколько это плохо — отходить от принятого. Физически-то как угодно можно сделать.