<rmcreative>

RSS

Все заметки с тегом «API»

  1. Сортировка и фильтрация в REST API

    15 августа 2016

    Среди информации по построению REST API встречаются две рекомендации на тему сортировки и фильтрации. Сортировку делать вот так:

    GET /users?sort=-created_at,username
    

    Сортируем по убыванию по дате создания и по имени пользователя в алфавитном порядке.

    Фильтры делать вот так:

    GET /tickets?status=open&assignee=123
    

    Получаем открытые тикеты, назначенные на пользователя с ID=123.

    Вроде всё красиво, но что если у очередного ресурса появится поле sort? GET-параметр уже зарезервирован для сортировки, использовать его для фильтрации не получается. Выхода два: либо заставить пользователя никогда не использовать поле sort (а к нему со временем добавится like и ещё что-нибудь) либо ввести для фильтрации отдельный параметр filter. Значение лучше всего описать в формате JSON: не придётся заботиться о специальных правилах экранирования, да и поддержка его есть во всех клиентах.

    GET /tickets?filter={"status": "open", "assignee": 123}
    

    В случае отдельного параметра, хоть синтаксис и не настолько интуитивен, конфликт имён исключается.

    9 комментариев
  2. Yii 2.0: не скачиваем клиентские пакеты

    6 апреля 2016

    При разработке Yii 2.0 мы сделали ошибку, включив в ядро по умолчанию клиентские пакеты вроде jQuery. В большинстве случаев это не доставляет проблем, но вот когда разрабатывается исключительно API, а пакеты всё-равно скачиваются и занимают место, возникает некое чувство дискомфорта.

    В 2.1 мы попробуем это решить, а пока можно воспользоваться средствами Composer прописав следующее в своём главном composer.json:

    "provide": {
        "bower-asset/jquery": "*",
        "bower-asset/jquery.inputmask": "*",
        "bower-asset/punycode": "*",
        "bower-asset/yii2-pjax": "*"
    },

    UPD: есть и в готовом виде: https://github.com/cebe/assetfree-yii2

    25 комментариев
  3. Получаем данные Google Analytics из PHP

    30 апреля 2013

    Иногда требуется показать данные из Google Analytics анонимным пользователям. Например, соорудить красивую статистику как на хабре или вывести счётчик посещений для конкретной страницы.

    Реализуется не совсем очевидно. В официальных документах если и описано, то очень и очень расплывчато. Хорошо, что есть добрые люди на StackOverflow. Итак, решение.

    Читаем

    16 комментариев
  4. Google закрыл некоторые API

    29 мая 2011

    На Google I/O были анонсированы новые API, однако вскоре было объявлено и о закрытии некоторых старых API:

    Также пойдут под нож, хоть и неизвестно пока когда, Code Search API, Diacritize API, Feedburner APIs, Finance API, Power Meter API, Sidewiki API, Wave API.

    Из всего этого можно сделать вывод, что какое угодно API может неожиданно накрыться медным тазом и основывать на нём критически важные части приложения, мягко говоря, не стоит.

    6 комментариев
  5. Новые API Google

    12 мая 2011

    На конференции Google I/O были анонсированы свежие API:

    • Tasks — задачи.
    • Prediction — предсказание на основе существующих данных.
    • Page Speed — анализ скорости загрузки страниц.
    • Fusion tables — работа с данными и из визуализация.
    • Books — книги.

    Возможно, это не всё, что было анонсировано. Это то, за чем я успел уследить.

    Комментировать
  6. Расширения в Opera 11 и API Opera

    15 октября 2010

    В Opera 11 появятся столь долгожданные расширения. Насколько я понял, по крайней мере на первое время расширения будут представлять собой прилично расширенный гибрид userCSS, userJS и HTML с централизованным репозиторием и удобной установкой. В планах расширения, изменяющие интерфейс, расширения, изменяющие сайты и расширения, работающие с разными API. Что там будет на самом деле мы узнаем с выходом альфы Opera 11.

    Кстати про API. Уже открыт API Opera Link, сервиса для синхронизации закладок.

    7 комментариев
  7. jQuery source viewer

    1 февраля 2010

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

    Пользуемся

    Кстати, вышла jQuery 1.4.1. Стоит обновиться.

    2 комментария
  8. Выбираем API

    31 декабря 2009

    Большой каталог API с удобным фильтром по компаниям, назначению, протоколам, языкам и формату данных.

    Рассматриваем

    Комментировать
  9. API статистики записей поиска по блогам Яндекса

    5 ноября 2009

    В декабре Яндекс закрывает страницу «популярные записи». А уже сейчас можно поиграться с их новым API и сделать свой топ записей.

    В принципе, штука полезная, но, как и API Яндекс.Спеллера имеет свои особенности и странности:

    • Записи отдаются в виде RSS с дополнениями в виде своего пространства имён.

    • Записи зачем-то разбиты на страницы.

    И самое странное:

    • Сортировать нельзя.

    То есть чтобы построить свой топ за последние 24 часа сначала придётся перетаскать одну за одной все страницы в БД, а потом уже делать выборки.

    Документация по API

    Комментировать
  10. PHP API для Parasite Eliminator

    17 августа 2009

    Решил выложить PHP API для сервиса Parasite Eliminator, позволяющего бороться с китайскими комментаторами, оставляющими бессмысленные комментарии с не менее бессмысленными ссылками.

    Получить обновления списков плохих и не очень URL с сервера Parasite Eliminator можно так:

    $parasiteApi = new ParasiteApi();
    $list = $parasiteApi->getList();
     
    echo $list['version']; // версия данных на сервере
    print_r($list['black']); // чёрный список
    print_r($list['white']); // белый список

    Также есть несколько полезных для проверки комментариев методов:

    // Приводит URL к виду rmcreative.ru
    echo ParasiteApi::normalizeUrl('http://www.rmcreative.ru/test/');
    // проверяет, является ли строка доменным именем
    echo ParasiteApi::isDomainName('rmcreative.ru');

    Пользуемся

    Свои ссылки, к сожалению, добавлять через API нельзя, но для себя я это реализовал. Можно устроить обмен списками… или создать альтернативный сервер обновлений для сходных по тематике проектов.

    2 комментария