Обновить
28.07

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

О создании API

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

Отказоустойчивая работа с клиентами: архитектура, немного кода, разбор проблем и асинхронные подходы

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

Мы в Юле применяем подходы и паттерны, которые позволяют нам избегать проблем, связанных с интеграциями: создаем абстракции, где размещаем транспортный протокол и логирование, используем circuit breaker, обращаемся к асинхронным подходам, используя Kafka как шину данных. Предлагаем погрузиться на несколько слоев абстракции и вместе решить любые проблемы интеграций: от тайм-аута до кэширования.

Читать далее

Figma plugin API человеческим языком. Часть 3

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

Подключаем React

В предыдущих двух статьях я описал, как без особых усилий можно начать писать плагин для Figma. И для того, чтобы сделать простой плагин, этого знания вполне достаточно. Но вот если интерфейс вашего плагина более сложный, чем пара кнопок и инпутов, если наворочена логика состояний, такой подход становится неудобен. Особенно учитывая, что весь код надо писать в html. Решить данную проблему нам поможет его величество React и его преосвященство Webpack. Подключение к плагину обеих технологий хорошо описаны в официальной документации Figma. И можно было не писать эту статью если бы не одно но, официальная инструкция не работает. А раз так, поехали!

Читать далее

REST, что же ты такое? Понятное введение в технологию для ИТ-аналитиков

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

Проектирование и работа с REST-сервисами стали повседневными задачами для многих аналитиков. Однако мы часто встречаемся на работе с различными или даже противоречащими друг другу трактовками таких понятий, как REST, RESTful-сервис, RESTAPI.

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

Выясним, почему существует терминологическая путаница вокруг REST и как нам научиться лучше понимать коллег.

Поговорим о том, как связаны HTTP и REST. А также почему REST противопоставляют SOAP.

Читать далее

Как оптимизировать производительность сайта. Расширенные рекомендации

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

Привет!

Это снова Сергей Кузнецов, руководитель отдела Frontend-разработки в AGIMA. Недавно я рассказывал здесь про оптимизацию сайта в разрезе показателей Google PageSpeed. И теперь хочу вернуться к этой теме. Сегодняшняя статья будет не слишком длинной, но, надеюсь, для многих полезной. Речь снова пойдет об оптимизации производительности. Я дам практические советы по тем или иным моментам.

Читать далее

Figma plugin API человеческим языком. Часть 2

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

Часть 2
Взаимодействие с Figma

В статье про написание скриптов для  Adobe After Effects я предложил читателям сделать песочницу кода, работающую прямо в AE. Давайте теперь сделаем такую же и для Figma. За основу можно взять заготовку из предыдущей статьи. Здесь вы найдете необходимые для работы плагина файлы manifest.json, index.html и plugin.js.

Для начала откроем manifest.json и заменим значение поля name на актуальное. Я назвал плагин Script Notepad.

Читать далее

Тип данных Either как альтернатива выбрасыванию исключений

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

Исключения – это базовый элемент многих языков программирования. Они обычно используются для обработки аномальных или непредусмотренных условий, при устранении которых необходим особый подход, нарушающий нормальный поток задач в приложении. В некоторых языках, например, в C++ или Java, исключения используются повсюду. Но не все языки спроектированы так. В C# или Kotlin нет проверяемых исключений. В других языках, например, Go и Rust, исключений нет вообще.

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

Читать далее

Figma plugin API человеческим языком

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели6.3K

Часть 1

Hello World!!!

Второй раз сталкиваюсь с написанием плагина для Figma и второй раз недоумеваю, зачем так сложно? Ну, в общем-то, ничего особо сложного нет. Но вот этот TypeScript, это зачем все? Установи модули, настрой публикацию. Сколько я не думал, единственное объяснение, зачем все это нужно, это защита от дурака. Типа, кому надо - разберется, а остальным и нечего лезть, говнокод плодить.

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

Читать далее

Упрощаем автоматизацию API-тестов с помощью Cucumber и Spock

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

Привет! Я Владимир Пасюга, QA Engineer в NIX. Общий опыт в IT у меня составляет 7 лет, из них 2,5 года я был мануальным тестировщиком в биомедицинском проекте, который включал и UI, и API-часть. Сейчас занимаюсь автоматизированными тестами API в приложении для медицинской сферы.

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

Читать далее

Автоматическое принятие приглашений к обмену документами в ЭДО Диадок по API

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

Автоматизация приема приглашений к обмену документами в кабинете ЭДО

Читать далее

Как мы создаем микросервисные проекты с нуля

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

Считается, что запуск микросервисов изначально затратнее по времени, чем монолит, и наш опыт это подтверждает. Однако, если следовать проверенным процессам, эти затраты можно минимизировать. Делюсь лучшими практиками и составляю чек-лист запуска.

Читать далее

Платежные технологии – просто о сложном. Часть 2

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

Процесс проведения платежа с запросом финального статуса операции

Читать далее

Как у нас в Slack проектируются API

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

Более пяти лет назад мы запустили платформу Slack, предоставив разработчикам легкий способ создавать приложения в Slack и публиковать их в нашей App Directory. Сегодня миллионы пользователей переносят свою работу в Slack, и их приложения, создаваемые более чем 885 000 активными разработчиками, действующими на этой платформе – залог дальнейшего улучшения совместной работы в Slack. 

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

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

Я не утверждаю, что Slack всегда проектировал API хорошо. У нас были ошибки, и платформа определенно могла бы быть удобнее для разработчиков. Но мы признаем эти ошибки и определяем, как их исправить – иногда даже дополнительно упирая на то, чтобы придерживаться какого-то выбора, сделанного в прошлом, тогда как сейчас мы бы с этим выбором не согласились — и в целом можем улучшить для разработчика опыт работы с платформой.

Читать далее

Изменение расширенных настроек печати через API nanoCAD

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

Расширенные настройки печати в nanoCAD являются дополнением к базовым настройкам.

Через пользовательский интерфейс nanoCAD невозможно увидеть, какая настройка является базовой, а какая – расширенной, однако при работе с API nanoCAD разница видна четко. В качестве примера можно взять настройку выравнивания области печати на листе. Если бы существовала возможность использовать только базовую настройку, то область печати удавалось бы выровнять лишь по центру листа. Расширенная настройка позволяет выравнивать область печати не только по центру, но и по сторонам листа.

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

Читать далее

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

Telegraph API: автоматизированное создание заметок

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

Сервису telegra.ph уже много лет, но информации о том как пользоваться его api почему-то не много, тем временем, крупные телеграм-каналы потихоньку приступили к промышленному освоению. Инструмент вполне себе неплохой, особенно как альтернатива созданию веб-страниц, к тому же появились решения, которые позволяют автоматизировать процесс.

Читать далее

Иерархическая классификация ожидаемого типа ответа на вопрос в вопросно-ответных системах на основе графов знаний

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

Одним из важных шагов, используемых людьми в поиске ответа на вопрос, является понимание того, какой именно тип ответа устроит автора. К примеру, на вопрос: "Который час?", мы ожидаем услышать ответ с типом "время", а на вопрос "Где родился Иван Петров?" -- ответ с типом "населённый пункт". То же самое верно и для вопросно-ответных систем (Question-Answering, QA), целью которых является поиск ответа на фактографические вопросы. В данной статье я представлю модуль определения ожидаемого типа ответа на вопрос (Expected Answer Type, EAT), который способен определять не только один класс, но и строить иерархию классов в качестве прогнозного значения. Модуль предоставляется как в виде веб-интерфейса (UI) так и в виде RESTful API. Данная функциональность позволяет конечным пользователям получать предсказания типа ответа для 104 языков, видеть достоверность прогноза и оставлять обратную связь. Кроме того, API позволяет исследователям и разработчикам интегрировать EAT-классификацию в свои системы.

Читать далее

Figma2Android: Как мы делали плагин для Figma, чтобы ускорить разработку интерфейсов в Jetpack Compose

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

Figma2Android - плагин для Figma, которые быстро и легко конвертирует дизайны из Figma в код Jetpack Compose (Android).

История и сложности в создании плагина для конвертации дизайна в Jetpack Compose код.

Читать далее

Все Telegram-каналы по SEO и маркетингу на одном сайте

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

Уверен, что подавляющее большинство пользователей интернета пользуются мобильными мессенджерами, в том числе используют Telegram для чтения новостей, каналов и чатов по маркетингу, SEO и любым другим направлениям.

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

Читать далее

Гарри Поттер и API-интеграция с AliExpress. Как мы чат-центр обхитрить пытались (и обхитрили!)

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

Хьюстон, на связи Антон Баташов, руководитель отдела интеграции и технической поддержки в компании XWAY. Вы-таки будете смеяться, но у нас проблема! Чат-центр, реализованный в интерфейсе личного кабинета AliExpress, предназначен для индивидуального предпринимателя с китайским терпением, а от наших запросов и темперамента — грустит и впадает в задумчивость.

Всем привет, а теперь чуть более серьезно. Большая часть современных маркетплейсов изначально построена по схеме FbM (Fulfillment by Marketplace), в которой товары хранятся на складе площадки, а коммуникация с покупателями идет через чат-центр маркетплейса. Так работают OZON, СберМегаМаркет, Яндекс.Маркет и Wildberries, которые содержат собственные отделы продаж и поддержки клиентов. Если продавцу понадобится собственный чат с покупателями, к его услугам — интеграция через API маркетплейса.

С AliExpress все немного с точностью до наоборот — его базовая схема FbS (Fulfillment by Seller), в которой товар хранится, отгружается и доставляется самим продавцом, подразумевает, что общение с покупателями тоже осуществляется напрямую. Для этого прямо в личном кабинете AliExpress есть отдельный чат-центр. Но он рассчитан на небольшой магазин с ограниченным ассортиментом и одним единственным оператором. 

Читать далее

Система заметок с нуля. Часть 5: знакомство с объектным хранилищем MinIO и разработка микросервиса на Golang

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

В первой части мы спроектировали микросервисную архитектуру.

Во второй части разработали RESTful API Service на Golang cо Swagger и авторизацией.

Третья часть была посвящена знакомству с графовой БД Neo4j и работе над микросервисами CategoryService и APIService.

Четвертая часть была посвящена разработке микросервисов.

Мы продолжаем создание системы заметок. На этот раз посмотрим на разработанный File Service, который работает с хранилищем MinIO. Но сначала разберёмся с самим хранилищем и его настройкой.

Читать далее

Установка и настройка Swagger Validator

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

Swagger - популярное решение для документирования API. Он использует OpenAPI Specification. Писать документацию это отлично и прекрасно, но было бы замечательно если она будет валидной и рабочей.

В статье небольшая инструкция по установке и настройке валидатора.

Настроить

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