Я создаю фреймворк и хочу, чтобы разработчики, работающие с ним, имели возможность разрешать частям его обмениваться данными с другими сайтами, а другим сайтам добавлять / редактировать / удалять данные.
Например, если кто-то создает сайт с рецензиями на книги, авторами, цитатами, примерами кода, комментариями и т. Д., Разработчик может сделать, например, «рецензии на книги» только для чтения для других сайтов и «комментарии», читаемые другими сайтами и доступные для записи определенным сайтам / пользователям. Идея состоит в том, чтобы использовать инфраструктуру для создания приложений, которые могут быть легко связаны с другими приложениями.
Я предполагаю включить все взаимодействия с сайтом через POST и GET, которые будут выглядеть примерно так:
- / books.php? Category = ruby (возвращает коллекцию книг XML о ruby)
- / books.php? Id = 23 (возвращает XML для конкретной книги)
- / books.php? Действие = добавить & название = AdvancedRuby & описание = .... & securityId = 923847203487
- / books.php? Действие = удаление & ID = 342 & securityId = 923847203487
Другие приложения также могут «обнаруживать и потреблять» то, что может предложить определенный сайт, делая это:
- / Discover.php (возвращает XML всех открытых классов и доступных действий)
На самом деле это все, что мне нужно для того, чтобы разработчики могли быстро создавать слабо связанные сайты.
Что я хочу знать, прежде чем я начну реализовывать это, есть ли важные / интересные части REST, которые я еще не понимаю, которые я должен встроить в структуру , например ::101037*
- REST требует GET, POST, PUT и DELETE. Зачем мне когда-нибудь нужны "PUT" и "DELETE"? Могу ли я отказаться от использования каких-то стандартов, если я их не использую?
- Мой файл "explore.php" работает аналогично файлу WSDL в веб-службах. Я удивлен в описаниях REST, кажется, нет стандартизированного способа обнаружения услуг, которые предлагает сервис RESTful, или есть?
- Если клиентский сайт пытается, например, добавить книгу на веб-сайт сервера и не получить ответ «успех», он просто попытается снова, пока не получит ответ. Веб-сайт сервера просто не добавит одну и ту же книгу дважды. Это мое понимание целостности данных в REST, есть что-то большее, чем это?
со временем я хочу иметь несколько сайтов с одинаковыми расширенными классами, например «BookReview», чтобы клиентский сайт мог выполнять такой код:
$ bookReview = new BookReview ("http://www.example.com/books.php?id=23");
$ book-> informAuthor («на нашем сайте был опубликован комментарий к обзору вашей книги ...»);
и сайт сервера отправит электронное письмо автору этого обзора.
Является ли этот тип взаимодействия типов компонентом философии RESTful или REST - просто обмен данными через XML, JSON?