Skip to content

Instantly share code, notes, and snippets.

@Vyazovoy
Last active May 1, 2017 19:52
Show Gist options
  • Save Vyazovoy/7039422 to your computer and use it in GitHub Desktop.
Save Vyazovoy/7039422 to your computer and use it in GitHub Desktop.
Description of Applifto Web API

Applifto Web API

Описание

Applifto Web API предсталяет собой RESTful интерфейс для получения/обновления данных и управления представлением этих данных на клиенте.

В качестве протокола передачи данных используется HTTPS (к сожалению мы пока не доросли до таких технологий и используем HTTP).
В качестве формата представления данных используется JSON.
Все даты в нулевой временной зоне (GMT) и имеют формат: YYYY-MM-DD HH:MM:SS (к сожалению мы пока привязаны к MSK).
Все языковые коды в формате ISO 639-1.
Все коды стран и территорий в формате ISO 3166-1 alpha-2.

Шаблон URL:

<baseURL>/<APIVersion>/<path>[?<parameters>]
<baseURL> = https://api.applifto.com
<APIVersion> = v2

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

Методы

Общие параметры

  • app_version - строка с полной версией приложения (компоненты разделены подчёркиванием).
    Пример: app_version=2_1_1_8

  • client_type - строка идентифицирующая тип клиента (ios, android, web).
    Пример: client_type=android

Метод получения/обновления списка фидов и их дашбордов

Путь: feeds.json
HTTP-метод: GET

Параметры:

  • update_date - дата последнего обновления. Опционально. Если параметр не указан, то в выдача формируется с разумной глубиной истории (несколько дней) и не содержит удалённых элементов. Параметр необходим для осуществления дифференциального обновления.
    Пример: update_date=YYYY-MM-DD HH:MM:SS

  • device_type - тип устройства (phone/pad). Опционально. Если параметр не указан, то по умолчанию используется тип phone. Параметр оказывает влияние на тип дашбордов и разметку страниц.

  • langs - список языковых кодов, разделённых запятой. Опционально. Если параметр не указан, то по умолчанию используется ru. Параметр оказывает влияние на попадание в выдачу фидов с различными языковыми кодами.

Ответ:

Код ответа: 200 OK
Тело ответа:

{
    "update_date" : <date_string>,
    "available_lang_codes" : ...,
    "feeds" : [
        {
            "id" : "feed_identifier",
            "sort_id" : <order_number>,
            "name" : ...,
            "summary" : ...,
            "color" : <CSS_color_string>,
            "link" : ...,
            "icon": <base64_encoded_image>,
            "article_update_date" : <feed_articles_last_modification_date_string>,
            "major_lang_code" : ...,
            "deleted" : <true_or_1>,
            ...,
            "banner_tokens": [
                {
                    "id": "token_identifier",
                    "link": ...,
                    "position_id": <position>,
                    "deleted": <true_or_1>
                },
                ...
            ],
            "page_layouts" : [
                {
                    "id" : "layout_identifier",
                    "sort_id" : ...,
                    "type" : ...,
                    "deleted" : <true_or_1>
                },
                ...
            ],
            "dashboards" : [
                {
                    "id" : "dashboard_id",
                    "position_id" : ...,
                    "layout_type" : ...,
                    "expiration_date" : ...,
                    "deleted" : <true_or_1>,
                    "products" : [
                        {
                            "id" : "product_id",
                            "itunes_id" : ...,
                            "offer_url" : ...,
                            "deleted" : <true_or_1>
                        },
                        ...
                    ],
                    "items" : [
                        {
                            "id" : "item_id",
                            "sort_id" : ...,
                            "expiration_date" : ...,
                            "click_number" : ...,
                            "item_id" : ...,
                            "deleted" : <true_or_1>
                        },
                        ...
                    ]
                },
                ...
            ]
        },
        ...
    ]
}

Метод получения/обновления статей, содержащихся в фиде

Путь: feeds/<feed_id>/articles.json
HTTP-метод: GET

Параметры:

  • update_date - дата последнего обновления. Опционально. Если параметр не указан, то выдача формируется с разумной глубиной истории (несколько дней) и не содержит удалённых элементов. Параметр необходим для осуществления дифференциального обновления.
    Пример: update_date=YYYY-MM-DD HH:MM:SS

Ответ:

Код ответа: 200 OK

Тело ответа:

{
    "update_date" : ...,
    "article_tokens" : [
        {
            "id" : "token_id",
            "sort_id" : ...,
            "deleted" : <true_or_1>,
            "article" : {
                "id" : "article_id",
                "title" : ...,
                "summary" : ...,
                "thumb_url" : ...,
                "original_feed_id" : ...,
                "lang_code" : ...,
                "text" : <article_body>,
                "author" : ...,
                "count_like" : ...,
                "count_dislike" : ...,
                "published" : ...,
                "origin_link" : ...
            }
        },
        ...
    ]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment