Google GData или Гигабаза с Гигаинтерфейсом 3

Posted by dobrych Sat, 28 Jun 2008 23:19:00 GMT

Скажу сразу: «я офигел». То, что сейчас предлагает Google для сторонних разработчиков — просто бомба. И не думайте, что App Engine это что-то новое. Да это неплохое дополнение к существуещей инфраструктуре, но самое главное внутри.

Итак, про что же я. GData — универсальный API Google для чтения, записи и поиска в его сервисах. Это очень сбалансированная смесь CRUD и Atom/RSS. Самое главное в GData — это фиды. Результаты поиска, сложные запросы, создание/обновление документов и т.п. возвращаются в формате, подобному Atom фиду. Ребята из Google практически дополнили спецификацию Atom возможностью делать запросы (выборки) и реализовали незаконченную спецификацию Atom Publishing Protocol. Другими словами гугловские сервисы видны через интерфейс GData, как фиды, которые можно читать, апдейтить, искать по каким-то параметрам и удалять. Эта модель работы с данными отлично вливается в сферу веб, что и показала практика Web2.0 (покажите популярный сайт без фида).

Какие сервисы на сегодня доступны через GData API:

Полный список на сайте 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.

Comments

Leave a response

  1. Avatar
    Иван Сагалаев about 9 hours later:

    Ребята из Google практически дополнили спецификацию Atom возможностью делать запросы (выборки) и реализовали незаконченную спецификацию Atom Publishing Protocol

    Кхм... Вот так рождаются мифы :-). APP вполне себе законченная спецификация. Больше того -- стандарт IETF. GData же -- его кастомное гугловое расширение, но далеко не единственная реализация APP. То, что у Гугла протокол используется -- это очень хорошо, но только потенциал самого протокола существенно шире, чем доступ к одним только сервисам Гугла.

    P.S. Эх, пора уже наконец дописать мой вечный драфт поста про APP :-)

  2. Avatar
    dobrych about 10 hours later:

    Иван, я возможно плохо разобрался, но Atom синдикация как раз утвержденный стандарт. А вот Atom Publishing Protocol — нет.

    Цитирую en.wikipedia.org/wiki/Atom_(standard))

    The Atom Publishing Protocol was issued as a Proposed Standard in IETF RFC 5023 in October 2007. Two other drafts have not been standardized

  3. Avatar
    Иван Сагалаев about 20 hours later:

    С октября 2007 стандарт: http://tools.ietf.org/html/rfc5023

Comments