Справка по RESTful API, перепутанная с ответами HTTP и XML - PullRequest
0 голосов
/ 18 октября 2011

Я пишу API и читаю учебные пособия и т.д. из различных источников. Я немного запутался в отношении ответов. Я написал класс, который будет отправлять ответ заголовка HTTP, а также ответ XML. Это правильно, или я должен использовать один или другой, а не оба? Кроме того, как я могу проверить правильность ответа HTTP-заголовка? Я использую PHP.

Я использовал следующий инструмент для проверки HTTP-ответа: http://www.seoconsultants.com/tools/check-server-headers-tool/ который говорит, что ответ HTTP / 1.1 200 ОК. Однако в моем сценарии я установил его так: заголовок (HTTP / 1.1 401 Unauthorized); Поэтому что правильно? Как я могу проверить правильно? Есть идеи, что не так?

Заранее большое спасибо за помощь.

Ответы [ 5 ]

2 голосов
/ 18 октября 2011

Redbot http://redbot.org/ проведет очень тщательный анализ вашего ответа HTTP, чтобы убедиться, что вы соответствуете спецификации HTTP.

Рекомендуется прочитать некоторые вводные материалы по протоколу HTTP.,Это сделает вашу жизнь намного проще.

1 голос
/ 18 октября 2011

В отдыхающем сервисе вы используете методы get, put, post и delete для http, поэтому заголовок http там «включен». Полезная нагрузка такого вызова метода может быть отформатирована так, как вам нравится (это должен быть существующий mimetype!), Поэтому возможен и xml! Вы должны разделить между «метаданными» ответа и полезной нагрузкой ответа: «метаданные» - это заголовок http, полезной нагрузкой - ваша строка XML, поэтому вы должны отправить оба! В противном случае вы бы отправили пустой ответ: -)

В вашем запросе вы должны определить, какое представление данных (в вашем случае xml) должно использоваться для ответа. Посмотрите на это изображение (левое - спокойное).

Но, тем не менее, это хорошая идея - использовать каркас для этого, как говорят другие ответы.

0 голосов
/ 18 октября 2011

Я не предлагаю вам связываться с ответом HTTP-заголовка. Держите его всегда равным 200 OK и отправьте обратно необходимую информацию в ответе XML.

Таким образом, клиент должен беспокоиться только об ответе XML. В случае ошибки HTTP, такой как 403 Forbidden, это будет означать, что это на системном уровне (настройка сервера), а не на самом прикладном уровне.

0 голосов
/ 18 октября 2011

Заголовки HTTP могут быть любыми - пусть клиент обрабатывает их.Клиент может использовать их, чтобы узнать, успешно ли завершена операция (запрос), доступна ли услуга и другие полезные вещи.Заголовки верны, если они либо предопределены протоколом и содержат действительные данные, либо они определены вами (проверки не требуются).

XML, JSON или любой другой ответ - это данные, которые вы хотите сообщить клиенту,Может содержать сведения об ошибках, результатах выполненных действий и т. Д.

0 голосов
/ 18 октября 2011

Вы пишете это с нуля? если вы затем используете общую или популярную платформу в качестве основы и сконцентрируетесь на построении методов API, а инфраструктура будет обрабатывать механизм доставки

http://inchoo.net/tools-frameworks/symfony2-rest/ и вы можете зайти в Google для получения дополнительных образцов

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