Ну, існує багато способів дізнатися, як створити RESTful веб-додаток, і немає, не існує єдиного правильного способу. RESTful не є стандартом, але він використовує набір стандартів (HTTP, URI, Mime Type, ...).
Почніть з цього: Як я пояснив REST дружині
Потім приступайте до цього: « RESTful Cook Services»
А потім докладіть усіх зусиль для розробки веб-додатків, оскільки найкращий спосіб вчитися - це робити експерименти, і ви можете так багато навчитися зі своїх помилок;)
Не хвилюйтесь, якщо ваші перші веб-додатки не будуть повністю ВИПУСКними: ви знайдете спосіб це зробити!
Тож, цитуючи Оби-Вана Кенобі, "може, сила буде з вами!" ;)
EDIT
Добре, дозвольте бути більш конкретним.
Ви хочете зробити якийсь ВІДПОВІДНИЙ webapp, так? Ну, як я вже сказав, є багато способів зробити це, але це головне керівництво.
Визначення
REST (Представницький стан передачі) - це стиль архітектури програмного забезпечення для розподіленої системи (наприклад, WWW). Це не стандарт, але він використовує набір стандартів: HTTP, AJAX, HTML, URI, Mime Type тощо. Ми говоримо про представлення ресурсу, а не про сам ресурс. Взято з "Як я пояснив REST дружині":
Дружина : веб-сторінка - це ресурс?
Райан : Види . Веб-сторінка - це представлення ресурсу. Ресурси - це лише поняття.
Обмеження архітектури
- Клієнт-сервер : клієнт і сервер розділені Уніфікованим інтерфейсом (описано нижче).
- Без громадянства : спілкування сервер-клієнт здійснюється без збереження певного стану клієнта на сервері.
- Cachable : клієнт може мати кеш відповідей на вже зроблені запити.
- Багатошарова система : клієнт не знає, чи він безпосередньо пов’язаний з кінцевим сервером, чи зв’язок здійснюється через проміжні продукти.
Уніфікований інтерфейс
- Ідентифікація ресурсів: кожен ресурс повинен бути ідентифікований URI.
- Протокол : для того, щоб увійти в комунікаційний клієнт і сервер, слід зробити протокол раніше. Кожен запит може мати правильний тип MIME (application / xml, text / html, application / rdf + xml тощо), праві заголовки та правильний метод HTTP (див. Опис CRUD нижче).
CRUD
Гаразд, ми бачили, що для ідентифікації ресурсів ми можемо використовувати URI, але нам потрібні щось інше для дій (додавання, зміна, видалення тощо): чудовий прийом до CRUD (Створення, читання, оновлення та видалення).
- Створіть { HTTP: POST } { SQL: INSERT } => створіть новий ресурс
- Прочитайте { HTTP: GET } { SQL: SELECT } => отримати ресурс
- Оновіть { HTTP: PUT } { SQL: UPDATE } => змінити ресурс
- Видалити { HTTP: DELETE } { SQL: DELETE } => видалити ресурс
Тепер щодо PUT і DELETE можуть з’явитися деякі технічні проблеми (ви отримаєте їх у формі HTML): розробники часто обходять цю проблему, використовуючи POST для кожного запиту "PUT" та "DELETE". Офіційно вам потрібно використовувати PUT і DELETE. До речі, роби те, що хочеш. Мій досвід підштовхує мене щоразу використовувати POST та GET.
--- Наступна частина повинна бути використана, але це не зв'язок REST: стосується пов'язаних даних ---
URI
Абстрактний URI з технічних деталей! Попрощайтеся з URI так:
http://www.example.com/index.php?query=search&id=9823&date=08272012
Переконструюйте URI! Візьміть посилання вище та змініть його так:
http://www.example.com/search/2012/08/27/9823
Це набагато краще, так? Це можна зробити:
Інша справа: використовуйте різні URI для представлення різних ресурсів:
Зверніть увагу : about.html і about.rdf - це не файли! Вони можуть бути результатом перетворення XSLT!
Зміст переговорів
Якщо ви досягли цього пункту, вітаю! Ймовірно, ви готові отримати більш абстрактні поняття, оскільки ми вносимо технічні деталі веб-семантики;) Ну, коли ваш клієнт хоче ресурс, він зазвичай робить такий запит:
GET http://www.example.com/about
Accept: application/rdf+xml
Але сервер не відповість разом з about.rdf, оскільки він має інший URI ( http://www.example.com/about.rdf ). Отже, давайте подивимось на шаблон 303 ! Сервер поверне це:
303 See Other
Location: http://www.example.com/about.rdf
І клієнт перейде за посиланням, що повертається таким чином:
GET http://www.example.com/about.rdf
Accept: application/rdf+xml
Нарешті, сервер поверне запитуваний ресурс:
200 OK
about.rdf
Не хвилюйтесь: ваша клієнтська програма нічого з цього не зробить! Шаблон 303 повинен бути виконаний серверною програмою, а ваш браузер зробить все інше;)
Висновок
Часто теорія знаходиться далеко, далеко від практики. Так, тепер ви знаєте, як створити та розробити додаток RESTful, але наведені вище рекомендації - лише натяк. Ви знайдете найкращий спосіб створення веб-додатків і, ймовірно, це не буде таким, як хоче теорія. Не кажи на це чорт: D!
Бібліографія
RESTful веб-сервіси, Sameer Tiagi
API REST повинен керуватися гіпертекстом, Рой Томас Філдінг
RESTful Веб-сервіси: Основи, Алекс Родрігес
Веб-робочий процес REST