Документация
Операции
Операции с коллекцией фотографий альбома
Операции с коллекцией тегов
Операции с коллекцией фотографий тега

Пример работы с API

В этом разделе на примерах решения некоторых типовых задач показаны основные принципы работы с API Фоток.

Рекомендуется запомнить следующие положения:

  • каждый ресурс имеет уникальный адрес (URL);
  • ресурсы связаны между собой ссылками;
  • сервис и клиент обмениваются между собой полными представлениями ресурсов в формате Atom Syndication Format или JSON.

Рекомендуется извлекать адреса ресурсов из соответствующих представлений, не используя собственных алгоритмов формирования адресов.

В качестве примера рассмотрим процесс создания нового альбома и размещения в нем фотографии. Процесс состоит из нескольких этапов:

Внимание! Для выполнения операций, требующих авторизации, необходимо принять пользовательское соглашение сервиса Яндекс.Фотки. Яндекс предлагает принять данное соглашение только через веб-интерфейс сервиса, когда пользователь впервые пытается загрузить фотографию.

Все действия в данном разделе будут выполняться над ресурсами пользователя alekna. Предполагается, что клиентское приложение уже получило авторизационный токен (см. Общие сведения об авторизации).

Начало работы

Работа c API Фоток начинается с получения сервисного документа. Из него можно получить ссылки на главные коллекции пользователя (см. Получение сервисного документа), а также узнать информацию о поддерживаемых коллекциями MIME-типах POST-запросов.

Для получения сервисного документа пользователя alekna отправляется GET-запрос по адресу

http://api-fotki.yandex.ru/api/users/alekna/. Авторизация при этом не обязательна.

GET /api/users/alekna/ HTTP/1.1
Host: api-fotki.yandex.ru

Сервер возвращает сервисный документ:

HTTP/1.1 200 OK 
Content-Type: application/atomsvc+xml; charset=utf-8

<service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom">
  <workspace>
    <atom:title>alekna на Яндекс.Фотках</atom:title>
    <collection href="http://api-fotki.yandex.ru/api/users/alekna/albums/" id="album-list">
      <atom:title>Все альбомы пользователя alekna</atom:title>
      <accept>application/atom+xml; type=entry, application/json; type=entry</accept>
    </collection>
    <collection href="http://api-fotki.yandex.ru/api/users/alekna/photos/" id="photo-list">
      <atom:title>Все фотографии пользователя alekna</atom:title>
      <accept>image/*</accept>
      <categories scheme="http://api-fotki.yandex.ru/api/users/alekna/tags/" />
    </collection>
    <collection href="http://api-fotki.yandex.ru/api/users/alekna/tags/" id="tag-list">
      <atom:title>Все теги пользователя alekna</atom:title>
      <accept />
    </collection>
  </workspace>
</service>

Ссылки на коллекции содержатся в элементах collection:

<collection href="{адрес коллекции}" id="{тип коллекции}">

id элемента collection определяет тип коллекции:

  • album-list - коллекция альбомов;
  • photo-list - общая коллекция фотографий;
  • tag-list - коллекция тегов.

В элементах accept содержится информация о поддерживаемых коллекциями MIME-типах POST-запросов.

Следующим этапом будет создание нового альбома. Создание альбома выполняется его добавлением в коллекцию альбомов. Поэтому из сервисного документа извлекаем адрес коллекции альбомов:

http://api-fotki.yandex.ru/api/users/alekna/albums/.

Далее - Создание нового альбома.