Обновить
28.49

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

О создании API

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

Стандарт WASI: запуск WebAssembly за пределами веба

Время на прочтение10 мин
Охват и читатели16K
27 марта мы в Mozilla объявили о начале стандартизации WASI, системного интерфейса WebAssembly (WebAssembly system interface).

Зачем: разработчики начали применять WebAssembly за пределам браузера, потому что WASM обеспечивает быстрый, масштабируемый, безопасный способ запуска одинакового кода на всех машинах. Но у нас пока нет прочного фундамента для такой разработки. Вне браузера нужен некий способ общения с системой, то есть системный интерфейс. А у платформы WebAssembly его пока нет.

Что: WebAssembly — это ассемблер для концептуальной, а не физической машины. Он работает на различных архитектурах, поэтому и системный интерфейс нужен для концептуальной ОС, чтобы работать на разных операционных системах.

Вот что такое WASI: это системный интерфейс для платформы WebAssembly.
Читать дальше →

Editor.js прекрасный редактор сохраняющий исходный код в JSON формате

Время на прочтение1 мин
Охват и читатели29K
CodeX крутые ребята, которые базируются в Университете ИТМО. На базе этого университета студенты и выпускники создают интересные и полезные проекты: Hawk.so, Capella, AR-tester и другие.

Один проект очень помог нашему бизнесу. Редактор Editor.js сохраняющий исходный код в JSON.


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

Наш опыт создания API Gateway

Время на прочтение6 мин
Охват и читатели30K
Некоторые компании, в том числе наш заказчик, развивают продукт через партнерскую сеть. Например, крупные интернет-магазины интегрированы со службой доставки — вы заказываете товар и вскоре получаете трекинговый номер посылки. Другой пример — вместе с авиабилетом вы покупаете страховку или билет на аэроэкспресс.

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

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

  • регистрацию,
  • контроль подключения к API,
  • мониторинг того, как пользователи используют конечную систему,
  • учёт бизнес-показателей.



В статье мы расскажем о нашем опыте создания API Gateway, в ходе которого мы решали следующие задачи:

  • аутентификация пользователя,
  • авторизация пользователя,
  • модификация исходного запроса,
  • проксирование запроса,
  • постобработка ответа.

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

Только без рук! Роботы, которые не повторяют действия пользователя

Время на прочтение7 мин
Охват и читатели4.4K
Эта обзорная статья о том, как использовать RPA для бизнес-процессов, которые включают в себя задачи, которые обычные люди выполнять не умеют, не хотят, или это занимает у них много времени и требует специальных знаний, такие как работу с FTP, базами данных или API.

Включение в процесс подобных действий приближает его создание к традиционному программированию и «скриптам», со всеми плюсами и минусами этого подхода.

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

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


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

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

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

В данной статье я расскажу про то, как следить за рекламными аккаунтами с помощью API и Python.

На выходе мы получим запрос к API Яндекс Директ, с помощью которого будем получать статистику по рекламным кампаниям и сможем обрабатывать эти данные.

Для этого нам нужно:

  1. Получить токен API Яндекс Директ
  2. Написать запрос к серверу
  3. Импортировать данные в DataFrame
Читать дальше →

Кросспостинг постов из Instagram в паблик VK на Python

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


Предисловие


Решил выйти на новый рынок сбыта, тем более, целевая аудитория моего интернет-магазина, не имеющая аккаунтов в Instagram, давно интересовалась появлением дубликата в VK. Идея хорошая, но постов на странице сотни, соответственно вручную работать ctrl+c ctrl+v не хотелось, плюс дальнейшие перспективы обезьянней работы не впечатляли.

Уверенный, что в интернете полно бесплатный решений, я начал гуглить. Естественно, первые страницы поисковой выдачи пестрят платными сервисами, с довольно обширными функционалами. Но мне, всего лишь на всего, надо было перенести все посты со страницы Instagram в паблик VK и в дальнейшем синхронно пополнять его.

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

Документация по api Instagram и VK довольно подробная и задачка не кажется сложной. Освободив себе пару вечеров, я приступил к работе. Первым делом необходимо было получить токены как в Instagram, так и в VK. С этим проблем не было, оба были получены за пару минут.

Дальше меня ждал первый подводный камень…
Читать дальше →

Проблема глубинных ссылок в HATEOAS

Время на прочтение7 мин
Охват и читатели4.7K
Внешнее связывание (глубинное связывание) — в интернете, это помещение на сайт гиперссылки, которая указывает на страницу, находящуюся на другом веб-сайте, вместо того, чтобы указать на начальную (домашнюю, стартовую) страницу того сайта. Такие ссылки называются внешними ссылками (глубинными ссылками).
Википедия
Дальше будет использоваться термин «глубинные ссылки», как наиболее близкий к англоязычному «deep links». Речь в данной статье пойдет про REST API, поэтому под глубинными ссылками будут подразумеваться ссылки на HTTP-ресурсы. Например, глубинная ссылка habr.com/ru/post/426691 указывает на конкретную статью на сайте habr.com.

HATEOAS – компонент REST-архитектуры, позволяющий предоставлять клиентам API информацию через гипермедиа. Клиенту известен единственный фиксированный адрес, точка входа API; все возможные действия он узнает из ресурсов, полученных от сервера. Представления ресурсов содержат ссылки на действия или другие ресурсы; клиент взаимодействует с API, динамически выбирая действие из доступных ссылок. Подробнее о HATEOAS можно прочитать на Википедии или в этой замечательной статье на Хабре.

HATEOAS – следующий уровень REST API. Благодаря использованию гипермедиа, он отвечает на многие вопросы, возникающие при разработке API: как управлять доступом к действиям на стороне сервера, как избавиться от жесткой связности между клиентом и сервером, как изменять адреса ресурсов в случае необходимости. Но он не дает ответа на вопрос о том, как должны выглядеть глубинные ссылки на ресурсы.
Читать дальше →

Применение Go в производственных системах. Валидаторы

Время на прочтение6 мин
Охват и читатели4.8K
Добрый день, Хабр!

Я довольно часто начинаю утро с просмотра хабра и наконец решил внести свой вклад в данный процесс изучения интересного. Если всё сложится, то это первая моя статься из цикла применения языка GO на производственных системах. Я хочу рассказать некоторые тонкости создания приложений и серверов, удобство языка и быстроту разработки на нем. Возможно, для профессионалов, эта статья покажется скучной и не интересной, но читая литературу я не нашел общей картины решения производственных задач. Хотя большинство задач решаются однотипно. В этой статье я расскажу общие принципы построения сервера и в качестве примера я буду использовать сервер для валидации и просмотра почтовых индексов Почты Россия. Эта статья будет освещать более общие, методологические проблемы и тонкости с которыми я столкнулся при создании данной системы. Я не буду описывать настройки общего характера, таких в сети много, я только хочу акцентировать внимание на мелочах, которые мешали запуску проекта.


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

Как сделать костыль для Тинькофф Инвестиций своими руками или уведомления об action required for take profit / stop loss

Время на прочтение4 мин
Охват и читатели15K
Есть такой брокер — Тинькофф Банк. И есть проблема в том, что на текущий момент этот брокер не имеет приказов take profit / stop loss. Поэтому, если вы хотите торговать более активно, то вам нужно костылить какое-то временное решение, пока в недрах Тинькоффа программисты разрабатывают киллер фичу take profit/stop loss, и под катом — одно из них.
update: 22.03.2019, Брокер выкатил мажорную версию 3.0.0 в Google Play, в которой take profit/stop loss все-таки появились.
Читать дальше →

Простейший JSON RESTful API на Эликсир

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

Как реализовать на Эликсир JSON API endpoint без каких либо фреймворков?


От переводчика:
В статье приведён пример очень простого веб-приложения, которое можно рассматривать как Hello, World! в создании простейшего API на Эликсире.
Код примера незначительно изменён для того, чтобы соответствовать текущим версиям библиотек.
Полный код примера с изменениями можно увидеть на GitHub.



Проблемы нового языка


Многие разработчики приходят в Эликсир из мира Ruby. Это очень зрелая среда с точки зрения количества доступных библиотек и фреймворков. И такой зрелости мне иногда не хватает в Эликсире. Когда мне нужна сторонняя служба, результат поисков подходящей может быть следующим:

какой же будет результат?

Приватные методы без нижнего подчеркивания и интерфейсы в Python

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


Привет, Habr. Недавно угорел по дизайну — модификаторам доступа и интерфейсам, потом перенес это на язык программирования Python. Прошу под кат — делюсь результатами и как это работает. Для заинтересовавшихся в конце статьи есть ссылка на проект на Github.
Читать дальше →

Митап по API Management — опыт IBM, Google, Yandex и Leroy Merlin — доступна запись

Время на прочтение1 мин
Охват и читатели2.5K
Вот и прошел год с первого митапа, анонсированного в нашей группе на meetup.com. Недаром в названии появилось «clusters and service mesh» — следующее мероприятие должно стать первым из серии и будет об API management. Ждем всех заинтересованных в четверг, 21 марта 2019 года у нас в клиентском центре IBM (Москва, Пресненская наб, 10). Будут Google, Yandex, Леруа Мерлен и IBM.

Update: запись митапа доступна по ссылке.
Презентации можно скачать тут.
Читать дальше →

Стажёр Вася и его истории об идемпотентности API

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

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


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

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

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

Обзор JavaScript-сканнеров штрихкодов

Время на прочтение5 мин
Охват и читатели53K
Недавно появилась идея сэкономить на ТСД на складе и попробовать использовать вместо них обычные дешёвые мобильники (даже без пылезащиты). Интерфейс планирую реализовать в виде веб-приложения (обычные веб-странички, HTML + CSS + JS).

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


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

Как Tinkoff.ru автоматизирует аналитику с Zeppelin

Время на прочтение6 мин
Охват и читатели12K
Tinkoff.ru разрабатывает множество сервисов на рынке финансовых услуг. У нас решают свои повседневные задачи аналитики, разработчики, технологи, менеджеры. Все мы ежедневно генерим идеи, анализируем, разрабатываем и делаем все, чтобы создавать лучший продукт на рынке.

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

Как я решил защищать документы от подделки и «изобрел» электронную цифровую подпись

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

О чем это


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

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

Актуальность задачи защиты от подделок


Дело в том, что в наш век безбумажной информации ни одно капитальное строительство, будь то газопровод или торговый центр, не обходится без подготовки полного комплекта исполнительной документации (as built), частью которой являются заключения по неразрушающему контролю (визуальному, радиографическому, ультразвуковому).
Читать дальше →

Работа с Jira API при помощи Python

Время на прочтение2 мин
Охват и читатели60K
Всем привет. Появилась мысль автоматизировать выгрузку отчетов из Jira. Так как любимым инструментом был Python, выбор пал на модуль от JIra позволяющий работать с их API. Кому интересно прошу по кат.

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

REST API на Laravel в 100 строк кода

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

inb4: копипаста из документации


В гайде упор на быстрое развертывание минимального набора для полноценной разработки API в соответствии с best practice, взятыми из документации Laravel 5.7, собранными в одном месте. Писал для себя и коллег как шпаргалку, надеюсь пригодится кому-нибудь еще.

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

Сервим всё

Время на прочтение7 мин
Охват и читатели7.4K
Не так чтобы очень давно, в довольно недалекой галактике, на одной провинциальной планетке жили известные потомки обезьян, которые настолько обленились, что решили изобрести искусственный интеллект. «Ну а что?» — подумали они. Хорошо же иметь в советчиках Сверхразум «надмозг», который будет думать за тебя, когда надо, проблемы твои оперативненько решать, да еще и лучше чем это когда-либо сможет сделать живое существо… И, не долго думая о последствиях, начали они свои обезьяньи мозги реверсить и когнитивный процесс на строительные кирпичики разбирать. Думали они, думали и придумали, не поверите — модель нейрона, математический алгоритм обучения, а затем и нейронные сети с разной топологией подтянулись. Конечно, работало это не сказать чтобы очень хорошо. Была масса недостатков, по сравнению с естественным интеллектом, но определенный круг задач данные модели позволяли решать с приемлемой точностью. И начали потихонечку появляться оцифрованные и сериализованные навыки в виде моделей сетей нейронных. Сегодня, дорогие любители истории вселенной, мы коснемся темы организации и внедрения различных навыков интеллекта искусственного.

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

WG Contract API: zoo of services

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


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

Если хотите познакомиться поближе с тем как команда Wargaming Platform справляется со сложностью системы из более чем сотни взаимодействующих друг с другом web-сервисов, то добро пожаловать под кат.
Читать дальше →

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