Успокоительные объекты
Restful Objects — это стандарт, охватывающий интерфейсы RESTful для объектных моделей предметной области . Спецификация опубликована под лицензией Creative Commons .
Представления и ресурсы, определенные стандартом
[ редактировать ]Стандарт определяет небольшой набор представлений JSON , охватывающий общие конструкции в объектной модели предметной области, включая следующее:
- Список ссылок на объекты домена
- Один объект домена
- Свойство, коллекция, принадлежащая объекту домена
- Действие, которое может быть вызвано над объектом домена.
- Результат действия (который обычно включает объект или список домена)
- Служба домена (по сути, объект домена без сохранения состояния)
- Небольшое количество очень конкретных представлений, таких как «Домашняя страница», «Версия» и «Пользователь».
Restful Objects также определяет стандартный набор ресурсов для доступа к этим представлениям или управления ими. Спецификация определяет, какие методы HTTP могут использоваться с каждым ресурсом и их значение. В таблице ниже показано частичное резюме:
HTTP-метод | Объект | Свойство | Коллекция | Действие [ объяснить ] | Вызов действия [ объяснить ] |
---|---|---|---|---|---|
ПОЛУЧАТЬ | Сводка объекта, сводка членов, значения свойств | Недвижимость, детали и стоимость | Детали и содержание коллекции | Подсказка к действию | Вызов (только если запрос) |
ПОМЕЩАТЬ | Обновить или очистить несколько значений свойств | Обновить или очистить значение | Добавить объект (если задана семантика) | — — ошибка 405 | Вызов (если идемпотент) |
УДАЛИТЬ | Удалить объект | Очистить значение | Удалить объект | — — ошибка 405 | — — ошибка 405 |
ПОЧТА | — — ошибка 405 | — — ошибка 405 | Добавить объект (если семантика списка) | — — ошибка 405 | Вызов (любой) |
В совокупности ресурсы и представления позволяют получить доступ ко всей функциональности объектной модели предметной области через HTTP . Следующая диаграмма, взятая из спецификации, иллюстрирует взаимосвязь между наиболее часто используемыми ресурсами и представлениями:
История и статус
[ редактировать ]Спецификация Restful Objects версии 1.0.0 была выпущена в июне 2012 года.
Реализации фреймворка
[ редактировать ]Существует три известные реализации спецификации Restful Objects, все с открытым исходным кодом:
- Apache Causeway (для платформы Java)
- Голые объекты для .NET (для платформы .NET)
- Restful Objects для Ruby (для платформы Ruby)
Связь с другими идеями
[ редактировать ]В спецификации Restful Objects указано, что она работает на более высоком уровне абстракции, чем другие стандарты restful, такие как спецификации JAX-RS для платформы Java или спецификация WCF для .NET. Есть некоторые концептуальные сходства с Odata , хотя Restful Objects уделяет гораздо больше внимания раскрытию поведения объектов предметной области, а не только их данных.
Существует совпадение с шаблоном голых объектов , поскольку оба они связаны с созданием общих интерфейсов для моделей объектов предметной области. Но в то время как последний создает некий пользовательский интерфейс , Restful Objects создает API — точнее, Restful API. Первые две платформы, реализующие стандарт Restful Objects, были построены на основе существующих платформ, реализующих шаблон «Обнаженные объекты».