Добро пожаловать в запутанный мир того, что есть, а что нет, остальное. Сначала я хотел бы предположить, что вы читали о REST не в тех местах. Попробуйте RESTWiki в качестве хорошей отправной точки.
REST не является отличным решением для предоставления услуг передачи данных для вашего веб-приложения. «Веб-сервисы» (или SOAP, XML-RPC, WSDL, HTTP-POX) могут быть хороши для этого, но архитектурный стиль REST гораздо больше ориентирован на сценарии клиент-сервер, чем сценарии сервер-сервер.
Хватит думать о том, как выглядят URL. То, как они выглядят, имеет гораздо больше общего с тем, какую серверную часть вы используете для реализации службы RESTful, чем с дизайном самой службы. Клиент должен обнаруживать URL-адреса из ранее извлеченных представлений, поэтому ему все равно, как выглядят эти URL-адреса.
Сказав, что, используя ваши примеры URL-адресов, чтобы попытаться различить то, что, по вашему мнению, должно быть разными ресурсами, у меня есть некоторые другие предложения.
Не версии ресурсов. То есть, если у вас есть ресурс, к которому обращается URL http://example.org/TodaysWeather
, никогда не создавайте ресурс на http://example.org/V2/TodaysWeather
. Существует множество других лучших способов создания версий версий, чем создание целого нового ресурса. Ищите так много других обсуждений по этому вопросу.
Что касается создания разных ресурсов для разных типов контента, я считаю, что это решение зависит от контекста. Если ваш конечный пользователь использует браузер для доступа к службе REST, и он достаточно сложен, чтобы понять разницу между JSON и XML, тогда создайте два ресурса. Если это клиент компьютера, я бы использовал согласование содержимого для получения необходимого формата.
И, наконец, будьте осторожны, поскольку REST стал умным словом du jour, вокруг гораздо больше неверно информированного контента, чем допустимого контента.