Мы предлагаем:У нас есть:
1 базу данных MySQL(50MB)PHP 5
Прикрепление своих доменовMySQL
Предустановленные движки сайтовPerl
Место под файлы(300MB)Ruby
Бесплатно и без рекламы!
Авторизация:
e-mail: Пароль:
Забыли пароль?    Запомнить  
Все блогиНовости oxnull.net → oxnull и RESTful
Rss

Идея в том что например http://oxnull.net/blogs/1 – ресурс, блог с идентификатором 1… соответственно:
http://oxnull.net/blogs – тоже ресурс, но который содержит в себе список ресурсов. Так же поддерживаются вложенные ресурсы, например: http://oxnull.net/blogs/1/posts/14 – говорит что у ресурса blog с ид=1 есть много ресурсов post и взять 14ый.

Почему это просто не назвать “договоренности по URL”? потому что не только URL, ресурс так же понимает глагол что хотят с ним сделать(GET,POST, PUT, DELETE).

т.е. урл при работе с ресурсом не меняется, меняется только глагол. По умолчанию глагол GET, соответственно если ресурсу послать глагол DELETE, то в теории он удалится, а если PUT, то это приведет к обновлению ресурса… т.е. есть единый адрес у ресурса, все остальное определяется глаголом… Rails прекрасно эмулирует дополнительные глаголы если браузер не поддерживает ничего кроме GET и POST.

Теперь вернемся к нашим баранам… браузер это одно из средств просмотра ресурса(статьи)… Поэтому у ресурса есть формат предоставления данных, по умолчанию сделано что это html, я ей строго на строго приказал и явно указывать это в url.

Вернемся к статьям… У нас есть ресурс http://oxnull.net/blogs/1/posts/1, к нему можно указать формат, как это принято и в тру-rest подходе тоже через точку. Сейчас доступно:

Точно так же оно будет работать и для ресурса более верхнего уровня, если мы хотим получить список статей в блоге: http://oxnull.net/blogs/1/posts.html

если мы хотим получить список блогов: http://oxnull.net/blogs.xml
… и т.д. и т.п.

Единственное только пришлось отойти немного от тру-rest подхода, что нигде не должно сохраняться никакое промежуточное состояние, а нам для изменения информации нужно еще как минимум иметь идентификатор
пользователя, кто это делает… поэтому POST, PUT и DELETE не являются чистой реализацией, в нашем случае приложение отправляющие эти запросы должно поддерживать куки. Но я не думаю что добавлять\редактировать кто-то будет вне oxnull.net, а там посмотрим

Кстати twitter написан с этой же технологией, поэтому подтягивать с него данные легко. В целом это сильно
упрощает написание сторонних программ, если бы интернет был написан полностью с rest-подходом мы бы уже давно получили сайты которые только подтягивают контент себе от других.

Что мы получаем кроме простоты написания сторонних клиентов? Как
хорошо было написано на одном сайте:

  • Кэширование. Когда у конечных точек RESTful запрашиваются данные с помощью HTTP, используется команда HTTP GET. Ресурсы, возвращаемые в ответ на запрос GET, можно кэшировать множеством разных способов. Условная команда GET, которая дает клиенту способ проверить с помощью службы, является ли его версия данных по-прежнему текущей, является деталью реализации, которую может обеспечить конечная точка RESTful, и которая еще больше увеличивает скорость и масштабируемость.
  • Расширение. REST дает возможность включать в каждый ресурс все состояния, необходимые для обработки конкретного запроса. Службы RESTful намного проще масштабировать, если они выполняют это ограничение
  • Побочные эффекты. Службы RESTful не должны иметь никаких побочных эффектов, когда вы запрашиваете ресурс с помощью команды GET
  • Функциональная совместимость. Многие рекламируют SOAP как наилучший способ реализации программ типа «клиент-сервер». Но для некоторых языков и сред до сих пор нет инструментальных средств SOAP. А некоторые снабжены инструментальными средствами, основанными на устаревших стандартах, которые не всегда обеспечивают возможность взаимодействия со средствами, в которых реализованы новые стандарты. Для REST требуется только доступность библиотеки HTTP для большинства операций (библиотека XML, безусловно, также часто оказывается полезной), и этот стиль определенно обладает большей функциональной совместимостью, чем любая из технологий RCP (включая SOAP).

Более подробно о Rest можно прочитать здесь:

  1. http://www.taknado.com/2007/7/30/rest-1/
  2. http://habrahabr.ru/blogs/webdev/50147/

Автор: Денис | Дата создания: 14 февраля 2010, 20:54 UTC | 0.0


Комментарии(0)
Простите, Ваш браузер не поддерживает html5
Управление стрелками. Пробел - пауза.