ВебмастерМетрикаВиджетыРекламная сетьДиректПоиск для сайтаAPI
Войти

В формате PDF

Соответствие между Atom и JSON

Описание ресурсов задается с помощью атрибутов. В API имена атрибутов ресурсов имеют следующую структуру:

namespace:name[@spec] (см. Таблицу 1)

Правила именования атрибутов ресурсов позволяют установить однозначное соответствие между именем атрибута и его представлением в структуре данных Atom и JSON:

  1. namespace соответствует префиксу пространства имён элемента name в формате Atom. В JSON-представлении не используется.
  2. name соответствует одноимённому XML-элементу в формате Atom и ключу в ассоциативном массиве JSON.
  3. @spec соответствует одноимённому XML-атрибуту элемента name в формате Atom и ключу в ассоциативном массиве JSON.

При этом если name или @spec содержит символы «-» или «_», то в ключе ассоциативного символа JSON данные символы удаляются, а следующий символ переводится в верхний регистр («hide_original»→ «hideOriginal»).

Поскольку ключи в ассоциативном не могут дублироваться, атрибуты с одинаковым name в JSON-представлении объединяются под ключом name в виде ассоциативного массива c ключами @spec.

Пример

Представление фотографии в формате Atom:

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:f="yandex:fotki" 
xmlns:georss="http://www.georss.org/georss">
  <id>urn:yandex:fotki:alekna:photo:425723</id>
  <author>
    <name>alekna</name>
  </author>
  <title>Задача</title>
  <link href="http://api-fotki.yandex.ru/api/users/alekna/photo/425723/" rel="self" />
  <link href="http://api-fotki.yandex.ru/api/users/alekna/photo/425723/" rel="edit" />
  <link href="http://fotki.yandex.ru/users/alekna/view/425723/" rel="alternate" />
  <link href="http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_orig" rel="edit-media" />
  <link href="http://api-fotki.yandex.ru/api/users/alekna/album/156444/" rel="album" />
  <published>2011-03-22T13:14:46Z</published>
  <app:edited>2011-03-22T13:29:49Z</app:edited>
  <updated>2011-03-22T13:29:49Z</updated>
  <f:access value="public" />
  <f:xxx value="false" />
  <f:hide_original value="false" />
  <f:disable_comments value="false" />
  <f:img height="75" href="http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_XXS" size="XXS" width="75" />
  <f:img height="480" href="http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_XL" size="XL" width="600" />
  <f:img height="240" href="http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_M" size="M" width="300" />
  <f:img height="400" href="http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_L" size="L" width="500" />
  <f:img height="50" href="http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_XXXS" size="XXXS" width="50" />
  <f:img height="120" href="http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_S" size="S" width="150" />
  <f:img height="80" href="http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_XS" size="XS" width="100" />
  <f:img height="480" href="http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_orig" size="orig" width="600" />
  <georss:point>55.7040297333 37.6448710822</georss:point>
  <content src="http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_orig" type="image/*" />
</entry>

Представление фотографии в формате JSON:

{
  "edited": "2011-03-22T13:29:49Z", 
  "updated": "2011-03-22T13:29:49Z", 
  "img": {
    "XXS": {
      "width": 75, 
      "href": "http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_XXS", 
      "height": 75
    }, 
    "XL": {
      "width": 600, 
      "href": "http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_XL", 
      "height": 480
    }, 
    "M": {
      "width": 300, 
      "href": "http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_M", 
      "height": 240
    }, 
    "L": {
      "width": 500, 
      "href": "http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_L", 
      "height": 400
    }, 
    "XXXS": {
      "width": 50, 
      "href": "http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_XXXS", 
      "height": 50
    }, 
    "S": {
      "width": 150, 
      "href": "http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_S", 
      "height": 120
    }, 
    "XS": {
      "width": 100, 
      "href": "http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_XS", 
      "height": 80
    }, 
    "orig": {
      "width": 600, 
      "href": "http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_orig", 
      "height": 480
    }
  }, 
  "links": {
    "album": "http://api-fotki.yandex.ru/api/users/alekna/album/156444/", 
    "editMedia": "http://img-fotki.yandex.ru/get/5303/alekna.0/0_67efb_caf79f6c_orig", 
    "self": "http://api-fotki.yandex.ru/api/users/alekna/photo/425723/", 
    "alternate": "http://fotki.yandex.ru/users/alekna/view/425723/", 
    "edit": "http://api-fotki.yandex.ru/api/users/alekna/photo/425723/"
  }, 
  "title": "Задача", 
  "xxx": false, 
  "access": "public", 
  "disableComments": false, 
  "published": "2011-03-22T13:14:46Z", 
  "hideOriginal": false, 
  "author": "alekna", 
  "geo": {
    "type": "Point", 
    "coordinates": "55.7040297333 37.6448710822"
  }, 
  "id": "urn:yandex:fotki:alekna:photo:425723"
}

Пример

Представление коллекции альбомов пользователя в формате Atom:

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:f="yandex:fotki">
  <id>urn:yandex:fotki:alekna:albums</id>
  <author>
    <name>alekna</name>
  </author>
  <title>alekna на Яндекс.Фотках</title>
  <updated>2011-04-27T11:55:30Z</updated>
  <link href="http://api-fotki.yandex.ru/api/users/alekna/albums/" rel="self" />
  <link href="http://fotki.yandex.ru/users/alekna/albums/" rel="alternate" />
  <entry>
    <id>urn:yandex:fotki:alekna:album:165988</id>
    <author>
      <name>alekna</name>
    </author>
    <title>Германия</title>
    <summary>Наша школьная поездка</summary>
    <link href="http://api-fotki.yandex.ru/api/users/alekna/album/165988/" rel="self" />
    <link href="http://api-fotki.yandex.ru/api/users/alekna/album/165988/" rel="edit" />
    <link href="http://api-fotki.yandex.ru/api/users/alekna/album/165988/photos/" rel="photos" />
    <link href="http://api-fotki.yandex.ru/api/users/alekna/album/165988/photos.ymapsml/" rel="ymapsml" />
    <link href="http://fotki.yandex.ru/users/alekna/album/165988/" rel="alternate" />
    <published>2011-04-15T20:34:51Z</published>
    <app:edited>2011-04-27T11:55:30Z</app:edited>
    <updated>2011-04-27T11:55:30Z</updated>
    <f:protected value="false" />
    <f:image-count value="0" />
  </entry>
  <entry>
   ...
  </entry>
   ...
</feed>

Представление коллекции альбомов пользователя в формате JSON:

{
  "updated": "2011-04-27T11:55:30Z", 
  "links": {
    "self": "http://api-fotki.yandex.ru/api/users/alekna/albums/", 
    "alternate": "http://fotki.yandex.ru/users/alekna/albums/"
  }, 
  "author": "alekna", 
  "title": "alekna на Яндекс.Фотках", 
  "entries": [
    {
      "edited": "2011-04-27T11:55:30Z", 
      "updated": "2011-04-27T11:55:30Z", 
      "links": {
        "edit": "http://api-fotki.yandex.ru/api/users/alekna/album/165988/", 
        "photos": "http://api-fotki.yandex.ru/api/users/alekna/album/165988/photos/", 
        "self": "http://api-fotki.yandex.ru/api/users/alekna/album/165988/", 
        "alternate": "http://fotki.yandex.ru/users/alekna/album/165988/", 
        "ymapsml": "http://api-fotki.yandex.ru/api/users/alekna/album/165988/photos.ymapsml/"
      }, 
      "title": "ура", 
      "author": "alekna", 
      "summary": "Наша школьная поездка", 
      "published": "2011-04-15T20:34:51Z", 
      "id": "urn:yandex:fotki:alekna:album:165988", 
      "imageCount": 0
    }, 
    {
       ...
    }
    ...
  ]
  "id": "urn:yandex:fotki:alekna:albums"
}