Google GData или Гигабаза с Гигаинтерфейсом 3
Скажу сразу: «я офигел». То, что сейчас предлагает Google для сторонних разработчиков — просто бомба. И не думайте, что App Engine это что-то новое. Да это неплохое дополнение к существуещей инфраструктуре, но самое главное внутри.
Итак, про что же я. GData — универсальный API Google для чтения, записи и поиска в его сервисах. Это очень сбалансированная смесь CRUD и Atom/RSS. Самое главное в GData — это фиды. Результаты поиска, сложные запросы, создание/обновление документов и т.п. возвращаются в формате, подобному Atom фиду. Ребята из Google практически дополнили спецификацию Atom возможностью делать запросы (выборки) и реализовали незаконченную спецификацию Atom Publishing Protocol. Другими словами гугловские сервисы видны через интерфейс GData, как фиды, которые можно читать, апдейтить, искать по каким-то параметрам и удалять. Эта модель работы с данными отлично вливается в сферу веб, что и показала практика Web2.0 (покажите популярный сайт без фида).
Какие сервисы на сегодня доступны через GData API:
- Google Docs;
- Gmail contacts;
- Notebook;
- Blogger;
- Picasa;
- Calendar;
- Base;
Полный список на сайте Google API.
Чтобы не остаться голословным хочу привести пример кода для работы с Google Docs.
import gdata.docs.service
# авторизация
gd_client = gdata.docs.service.DocsService()
gd_client.email = 'username@gmail.com' #change this
gd_client.password = '' #change this
gd_client.source = 'exampleCo-exampleApp-1'
gd_client.ProgrammaticLogin()
# запрашиваем список (фид) всех документов с сервиса
feed = gd_client.GetDocumentListFeed()
# выбираем первый документ для работы
d = feed.entry[0]
# работаем с документом
print d.title.text # выводим название документа
print d.content.src # ссылка на документ в html виде (как он хранится в google)
Для создания или изменения документа необходимо использовать python-модуль atom. Пример кода:
import atom
# устанавливаем название нового документа
document.title = atom.Title(text='my best friends')
Что еще можно добавить. Вышеприведенный код предоставлен разработчиками Google для Python. Т.е. это уже клиентская часть API. Есть также версия для Java, .NET и PHP. Так что если есть желание интегрироваться с Google, то, пожалуй, все необходимое для этого есть.
Вывод простой. Google превращается из робота индексера в датацентр для размещения информации и вычислений. На сегодняшний день — это работа с документами, почтой, контактами, блогами и фото. Все в одной среде. И новое API — это отличный вариант реализации интерфейса к фичам этого гугло-датацентра :-)
На закусь ссылка на описание протокола GData.







Кхм... Вот так рождаются мифы :-). APP вполне себе законченная спецификация. Больше того -- стандарт IETF. GData же -- его кастомное гугловое расширение, но далеко не единственная реализация APP. То, что у Гугла протокол используется -- это очень хорошо, но только потенциал самого протокола существенно шире, чем доступ к одним только сервисам Гугла.
P.S. Эх, пора уже наконец дописать мой вечный драфт поста про APP :-)
Иван, я возможно плохо разобрался, но Atom синдикация как раз утвержденный стандарт. А вот Atom Publishing Protocol — нет.
Цитирую en.wikipedia.org/wiki/Atom_(standard))
С октября 2007 стандарт: http://tools.ietf.org/html/rfc5023