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