Обновить
27.62

Проектирование API *

О создании API

Сначала показывать
Порог рейтинга
Уровень сложности

Восемь причин перейти на новый API Яндекс.Кассы

Время на прочтение7 мин
Охват и читатели10K
В октябре 2017 года у Яндекс.Кассы появились новый платёжный протокол и третья версия API. Мы уже рассказывали о том, как и почему к этому пришли, а сейчас напомним ключевые причины перейти на него для тех, кто этого ещё не сделал.

1. Подключение платежей стало реально быстрым


На новом API оно происходит в 5-10 раз быстрее, чем раньше, и теперь среднестатистический разработчик может подключить платежи к своему (ну, или не совсем) сайту или приложению за один рабочий день, а не за пять, как было раньше. Речь, конечно, о той части работы, когда всё согласовано, заявки одобрены и ключи доступа получены. Но на это тоже достаточно дня.
Ещё семь причин

Писали API — порвали XML (два)

Время на прочтение7 мин
Охват и читатели5.1K
Первый API МоегоСклада появился 10 лет назад. Всё это время мы работаем над существующими версиями API и разрабатываем новые. А несколько версий API уже успели похоронить.

В этой статье будет много всего: как создавали API, зачем он нужен облачному сервису, что дает пользователям, на какие грабли мы успели наступить и что хотим делать дальше.
Читать дальше →

Умный дом с Алисой. Яндекс открывает платформу для всех разработчиков

Время на прочтение4 мин
Охват и читатели87K


Мы верим, что в будущем люди будут управлять своим домом с помощью голоса, а не кнопок. Поэтому сегодня Яндекс представляет платформу умного дома, которая позволит зажечь свет, убавить температуру на кондиционере, переключить телевизор на другой канал или даже сварить кофе — с помощью Алисы.

Платформа открыта: подключиться к ней могут как крупные производители умных устройств, так и разработчики, автоматизирующие свои дома. Сегодня мы не будем пересказывать документацию, но расскажем читателям Хабра об архитектуре нашей платформы и подскажем устройства, которые уже её поддерживают.

Читать дальше →

Как нас анализируют в магазинах и ресторанах — продолжение истории

Время на прочтение11 мин
Охват и читатели8.6K

В первой части статьи я рассказывал про новый инструмент для бизнеса по подсчету и анализу людского трафика с помощью видеокамер. На рынке представлено довольно много продуктов по подсчету людей, но практически нет таких, которые это делают методом анализа человеческого лица. При распознавании лиц можно получить следующую информацию: пол, возраст, эмоциональный фон и, собственно, самое главное, уникальный идентификатор лица. Последнее нужно для того, чтобы понимать, что это лицо мы видели ранее: тогда-то, столько-то раз, с такой-то периодичностью и т.п.




Данные видеоаналитики прекрасно используются в ритейле, сфере услуг, кафе и ресторанах. Теперь можно более предметно и точно анализировать покупателей: их трафик, уникальность, повторяемость, пол и возраст и, конечно, эмоции. В счетчике по лицам можно наконец-то отделять сотрудников от посетителей, считать длительность обслуживания и выстраивать маркетинговые активности по увеличению лояльности покупателей.


Напомню, что для примера взята одна точка – кафе (по принципу столовой) в Москве, в котором камера установлена на кассе.

Читать дальше →

Бот для VK на Python с MySQL за час ч.2

Время на прочтение3 мин
Охват и читатели14K

Предисловие


Прошу извинения за то, что в первой статье не написал про работу с базой данных, но именно эта часть направлена на работу с MySQL.

3 часть будет неким дополнением, где мы рассмотрим работу с клавиатурой для бота и на этом цикл статей завершиться.

Подготовка


После прошлой статьи на руках мы должны иметь такой код:

import vk_api
from vk_api.utils import get_random_id
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import pymysql.cursors
import requests

def get_connection():
    connection = pymysql.connect(host='you_host',
                                 user='you_user',
                                 password='you_password',
                                 db='you_db'
                                 charset='utf8mb4',
                                 cursorclass=pymysql.cursors.DictCursor)
    return connection

Читать дальше →

Из эпицентра Google Cloud Next ’19: полевые заметки CEO

Время на прочтение7 мин
Охват и читатели2.2K
Если хотите знать, откуда дует ветер, отправляйтесь в самое сердце урагана.

Приблизительно такое ощущение сложилось от посещения конференции Google Cloud Next ’19, где три дня разработчики, продакт-менеджеры, специалисты по данным и другие светлые умы делились самыми горячими новостями в сфере разработки приложений и архитектуры, безопасности, управления расходами, анализа данных, гибридных облачных технологий, ML и АІ, внесерверной обработки данных и пр… 30 000 человек, потоки по индустриям и техническим направлениям, почти безостановочные лекции. Вот это ажиотаж!

Расскажу вам, какие важные новости о Google Cloud в 2019-2020 гг. и его 122 обновлениях нельзя упустить, на основе заметок Влада Флакса, CEO компании OWOX, который побывал на конференци.
Читать дальше →

Как нас анализируют в магазинах и ресторанах

Время на прочтение10 мин
Охват и читатели12K
Сегодня поговорим о применении видеоаналитики в ритейле, сфере услуг и ресторанном бизнесе. Речь пойдет об анализе покупателей, их трафике, уникальности, повторяемости, поле и возрасте и, конечно, эмоциях. Немного затронем дисциплину сотрудников. Будет только практический анализ, примеры и никакой воды.

Статья получилась большая, и я разбил её на две части, но всё равно букв будет много.




По следам статьи «Как нас анализируют в кинотеатрах… и не только».

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

Читать дальше →

Самодокументируемый REST сервер (Node.JS, TypeScript, Koa, Joi, Swagger)

Время на прочтение12 мин
Охват и читатели23K

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

Добро пожаловать под кат, где я опишу, как мы решали эту задачу в нашей команде.
Читать дальше →

Acronis впервые открывает доступ к API для разработчиков

Время на прочтение5 мин
Охват и читатели3.5K
Начиная с 25 апреля 2019 у партнеров появилась возможность получить ранний доступ (Early Access) к платформе Acronis Cyber Platform. Это первый этап реализации программы по формированию новой экосистемы решений, в рамках которой компании по всему миру смогут воспользоваться платформой Acronis для интеграции сервисов киберзащиты в свои продукты и решения, а также получают возможность предложить собственные услуги мировому сообществу через наш будущий маркетплейс. Как это работает? Читайте в нашем посте.


Читать дальше →

Представляем Tartiflette: реализацию GraphQL с открытым исходным кодом для Python 3.6+

Время на прочтение4 мин
Охват и читатели3.9K
Друзья, в преддверии майских праздников мы решили не заваливать вас сложными техническими статьями, поэтому нашли довольно интересный, а главное, легкий в прочтении материал, переводом которого с радостью делимся с вами. Данный материал мы хотим приурочить к запуску курса «Web-разработчик на Python».

С оригиналом можно ознакомиться тут.



Приобретение Vivendi dailymotion три года назад оказалось поворотным моментов для нашей организации. Это позволило переосмыслить вектор нашей работы, переосмыслить саму нашу работу от начала до конца. Мы использовали представившуюся возможность для оценки dailymotion в целом, переосмысления нашей инфраструктуры и, что более важно, архитектуры наших продуктов.

В конце концов, проведенный самоанализ подтвердил то, что мы уже знали: мы хотели территориально распространять нашу платформу и разрабатывать API-интерфейсы, мобильные и ТВ-приложения. Это ознаменовало отказ от нынешней монолитной структуры и принятие API-ориентированного подхода. В этой статье описан путь, по которому мы шли.
Читать дальше →

Получение статистики по всем клиентам из API Яндекс Директ в разрезе дней с помощью Python

Время на прочтение5 мин
Охват и читатели7.1K
В работе часто использую короткую статистику в разрезе дней чтобы отслеживать отклонения трафика.

Более подробно о написании запросов написал в статье « Получение рекламных кампаний Яндекс Директ с помощью API в DataFrame (Python)».

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

Нам следует прописать запрос к серверу как функцию.

Лично я сделал 2 файла: функция с запросом и файл с данными, которые будут передаваться в функцию.

В первом файле пишем функцию


Я запрашиваю по всем проектам одни и те же поля, поэтому мне нужно передавать в запрос только даты, логин и токен.

Передача данных в функцию у меня выглядит следующим образом:

def rep(token,login,date_from,date_to):

Пишем запрос к серверу API Яндекс Директ


Данный запрос запрашивает данные по следующим параметрам:

  • Date
  • Impressions
  • Clicks
  • Ctr
  • Cost
  • AvgCpc
  • AvgImpressionPosition
  • AvgClickPosition
  • AvgTrafficVolume
  • BounceRate
  • AvgPageviews
Читать дальше →

Как ускорить работу с API на языке R с помощью параллельных вычислений, на примере API Яндекс.Директ (Часть 2)

Время на прочтение19 мин
Охват и читатели3.5K

В прошлой статье я рассказал о том, что такое многопоточность, и привёл примеры её реализации на языке R при работе с API Яндекс.Директ с помощью пакетов doSNOW, doParallel и конструкции foreach.


Данная статья является продолжением, но может быть рассмотрена как автономное руководство по многопоточности в R. К её написанию меня подтолкнули комментарии полученные к первой части (тут отдельная благодарность Alexey_mosc, SatCat, Ananiev_Genrih), в которых мне привели ряд пакетов, представляющих более современный подход к реализации многопоточности в R, о них далее и пойдёт речь.


Многопоточность

Читать дальше →

Открываем API для приема p2p-переводов

Время на прочтение5 мин
Охват и читатели24K
Привет!

Мы тут в QIWI открыли API приема переводов. Новый сервис должен решить сразу несколько проблем для тех, кто часто посылает (а особенно — получает) деньги именно посредством p2p-перевода. Во-первых, мы открыли возможности, ранее доступные только для бизнеса, и постарались сделать процесс безопасным, быстрым и удобным, а во-вторых, хотим снять риски вида «Мне тут за работу заплатили и банк счет поблочил».


Зачем все это вообще и как именно мы это сделали, а еще про возможность получить от нас до 3 миллионов рублей в рамках QIWI Universe — под катом.

Ближайшие события

Секреты API Android-устройств. Доклад Яндекса

Время на прочтение10 мин
Охват и читатели12K
Одна из главных сложностей Android-разработки — фрагментация. Практически каждый производитель меняет Android под свои нужды. Разработчик Андрей Макеев перечислил отличия между реализациями вендоров и оригинальным Android Open Source Project. Из доклада можно узнать, как извлечь пользу из индивидуальных особенностей прошивок на разных устройствах.


— Программированием я занимаюсь со школы, под Android разрабатываю года три. Из них год я провел в Яндексе, участвовал в таких проектах, как Лончер и Телефон.

Импорт в Я.Коннект из файла списка пользователей через API

Время на прочтение3 мин
Охват и читатели4.5K
Столкнулся с проблемой «ненахода» актуального скрипта для массового создания сотрудников.

Проблема связана с переходом Яндекса с PDD (Почта для домена), на Я.Коннект с новой версией API.

Скрипты которые мне попадались, были написаны только для «старой» версии API, и потому считаются нерабочими неактуальными.

Потому, вот актуальный простенький скрип на сегодня, для массового создания «Сотрудников» в организации.
Читать дальше →

Как разделить фронтенд и бэкенд, сохранив взаимопонимание

Время на прочтение8 мин
Охват и читатели26K

image


Как изменить архитектуру монолитного продукта, чтобы ускорить его развитие, и как поделить одну команду на несколько, сохранив согласованность работы? Для нас ответом на эти вопросы стало создание нового API. Под катом вас ждёт обстоятельная история о пути к такому решению и обзор выбранных технологий, но для начала — небольшое лирическое отступление.


Несколько лет назад я прочёл в научной статье, что для полноценного обучения нужно всё больше и больше времени, а в недалёком будущем на получение знаний будет уходить восемьдесят лет жизни. Видимо, в IT это будущее уже наступило.


Мне посчастливилось начать программировать в те годы, когда не было разделения на бэкенд и фронтенд-программистов, когда не звучали слова «прототип», «продуктолог», «UX» и «QA». Мир был проще, деревья выше и зеленее, воздух чище и во дворах играли дети, а не парковались автомобили. Как бы мне ни хотелось вернуться в то время, нужно признать, что всё это не замысел суперзлодея, а эволюционное развитие общества. Да, общество могло развиваться иначе, но, как известно, история не терпит сослагательного наклонения.

Читать дальше →

Принципы построения REST JSON API

Время на прочтение8 мин
Охват и читатели393K

Эта памятка писалась для внутренних нужд (открыть глаза менее опытным в вебе коллегам). Но, т.к. я насмотрелся велосипедов от довольно уважаемых, казалось бы, контор, — выкладываю на хабр. Мне кажется, многим будет полезно.


Зачем


Надеюсь, читающий уже понимает, зачем ему вообще нужен именно REST api, а не какой-нибудь монстр типа SOAP. Вопрос в том, зачем соблюдать какие-то стандарты и практики, если браузеры вроде бы позволяют делать что хочешь.


  • Стандарт HTTP это стандарт. Его несоблюдение вредно для кармы и ведёт к постоянным проблемам с безопасностью, кэшированием и прочими "закидонами" браузеров, которые совсем не закидоны, а просто следование стандарту.
  • Велосипеды со всякими {error: "message","result":...} невозможно нормально тестировать и отлаживать
  • Поддержка большим количеством готовых клиентских библиотек на все случаи жизни. Те, кто будет вашим api пользоваться, скажут большое человеческое спасибо.
  • Поддержка автоматизированного интеграционного тестирования. Когда сервер на любые запросы отдаёт 200 ОК — ну, это такое себе развлечение.
Читать дальше →

MCDM-Project. Часть 1. Концепция

Время на прочтение8 мин
Охват и читатели2.9K

Предисловие


Все-таки в душе я фантазер и мечтатель, на деле (в мире программирования) максимум «парень из гаража», но после «раскручивания гаек» не мог не удержаться от идеи явить Хабражителям на справедливый суд концепцию проекта MCDM-Project в целом и игрушечную тестовую версию в частности (несколько опасаюсь Хабраэффекта, если будут проблемы — прощения просим). Ссылка на сайт проекта ждет читателя в конце публикации (вместе с опросом), для ознакомления рекомендуется пройти предлагаемый на сайте тур, а в идеале — предварительно ознакомиться с основными идеями под катом.
Читать дальше →

Руководство: как сделать простого бота для Телеграм на JS для новичка в программировании

Время на прочтение5 мин
Охват и читатели60K
Я начал погружение в мир IT лишь три недели назад. Серьезно, три недели назад я даже не понимал синтаксиса HTML, а знакомство с языками программирования заканчивалось школьной программой по Pascal 10-летней давности. Однако я решился поехать в IT-лагерь, для детей которого было бы неплохо сделать бота. Я решил, что это вряд ли так сложно.

С этого начался длинный путь, в рамках которого я:

  • развернул облачный сервер с Ubuntu,
  • зарегистрировался на GitHub,
  • выучил базовый синтаксис JavaScript,
  • прочитал тонну статей на английском и русском языках,
  • сделал, наконец, бота,
  • написал эту статью, наконец.

Выглядел итоговый результат примерно так:


Читать дальше →

Поиск JS-фреймворка для генерации UI

Время на прочтение11 мин
Охват и читатели17K


Как-то я захотел попробовать реализовать одно маленькое клиент-серверное приложение. Реализация в задумке была такая: на клиентской стороне рисуем с помощью какого-нибуть JS-фреймворка окошки, на серверной стороне обрабатываем вызовы с клиента с помощью скомпилированного приложения, написанного например на Go.


Я начал подбирать фреймворк, предоставляющий декларативный интерфейс. В моём представлении он на входе должен получать в максимально упрощённом виде описание содержимого формы (например в формате YAML, JSON, BEMJSON, XML, или даже INF), а на выходе рисовать в браузере красивую форму с работающими элементами управления.


Профессионально я веб-разработкой не занимаюсь и поэтому не ожидал, что надолго застряну на данном этапе.


И статью писать не собирался, но потом подумал, что свежий взгляд со стороны на современные веб-технологии, пусть даже новичка, может быть интересен сообществу. Возможность получить обратную связь опять же…

Читать дальше →

Вклад авторов