Обновить
35.22

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

О создании API

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

Почему API приложениям нужен дизайн гайдлайн: рассказываем, показываем и делимся своим

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

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

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

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

Какие шероховатости чаще всего встречаются в API интерфейсах, которым не уделили должного внимания?

Читать далее

Создание Telegram бота на PHP #1: основные понятия для работы с API

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

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

В первом уроке мы с вами рассмотрим основные понятия связанные с API. Я вам расскажу что такое API методы, хуки, покажу на примере Telegram построение URL для создания запросов и расскажу о том как создаются простые API запросы на PHP.

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

Читать далее

Использование OAuth в интеграции API с помощью Python, REST и HL7 FHIR

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

Всем привет! Поделюсь с вами знаниями по OAuth для интеграции систем через API. Расскажу вам, как это можно сделать на Python с бэкенд-системами, использующими REST и HL7 FHIR.

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

В этом случае OAuth может стать хорошим выбором. В этой статье показано, как его можно применять в Python при работе с бэкенд-системами, используя REST и HL7 FHIR.

Что бы нам хотелось получить

Допустим, у нас есть типичный вариант интеграции, как показано на схеме ниже.

Читать далее

WebSocket ориентированое Api на Nest.js

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

В этой статье я расскажу как создал модуль под Nest.js позволяющий писать классическое RESTFull API со swagger'ом но клиент будет полностью на WebSocket'ах, звучит странно не так ли? Но зато очень быстро и удобно по итогу)

Идея состоит в том, что вы пишите классическое документированное апи, со всеми типами и плюшками.

Читать далее

Анатомия ошибки в JavaScript

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

Автоматически генерируемые ошибки JavaScript – почему они происходят


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

Пишем бота на JavaScript для Minecraft (1.8-1.18) / Часть 1-9

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

Создавай ботов для Minecraft с помощью библиотеки mineflayer.

Читать далее

«А у нас сиеста!» или как ресторану обрабатывать звонки клиентов с помощью API

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

Промоделируем ситуацию: знаменитейший помощник повара по имени Хуан после прогремевшей на весь мир истории со сковородками (отсылка) решил открыть свой собственный ресторанчик. 

Хуан готовит прекрасную паэлью, возможно лучшую в Андалусии. Но есть одна проблема - Хуан уважает сиесту, а поэтому с 13:00 до 17:00 совершенно не следит за персоналом ресторана. 
Наша цель: помочь веселому и предприимчивому Хуану успокоить клиентов и мотивировать сотрудников, чтобы они не забывали быстро готовить и доставлять заказы. 

Для этого автоматизируем процессы обработки входящих вызов от клиентов с помощью Telecom API MTT.

Читать далее

Создание REST aсtivity (действий) Битрикс24 с приложением-встройкой для препроцессинга параметров

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

У нас возникла задача добавить препроцессинг для параметров активити бизнес-процесса Битрикс24. Когда разбирались в задаче не смогли найти ни одного примера и решили выложить свой - может быть кто-нибудь сможет решить задачу с динамическими списками или освободит себя от необходимости запрашивать код сущности через вебхук

Читать далее

API-First и микросервисы

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

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

Читать далее

«Рабочие места» для цифровых кочевников: реализация прагматичного API

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

Ещё один небольшой pet-проект: про кафе и коворкинги на солнечном Кипре. "Рабочие места" для цифровых кочевников ヽ(。_°)ノ

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

Читать далее

Technical Governance для IDP на 7000 разработчиков

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

Всем привет, меня зовут Дмитрий Гаевский, я руковожу созданием внутренней платформы для разработчиков в Тинькофф. Последние два года стали знаковыми для российской ИТ-отрасли с точки зрения «распаковки» тем о таких платформах. Крупные технологические компании начали делиться опытом, и сегодня я расскажу о нашем кейсе. 

Читать далее

На что бизнесу обращать внимание при проверке контрагентов: 13 показателей

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

Почти четверть компаний считались убыточными по итогам 2021 года, а более 8 тыс. юридических лиц из 3,2 млн в России на момент написания статьи находятся в реестре недобросовестных поставщиков. Недобросовестность партнеров может обернуться для компании не только финансовыми и налоговыми рисками, но и репутационными. Чтобы избежать или уменьшить риски, бизнес проверяет информацию о контрагентах в открытых источниках, собирает отзывы у коллег, которые уже работали с потенциальным партнером. Если проверять приходится много и часто, компании пользуются сервисами проверки контрагентов (СПК).

Читать далее

Конструктор триггеров в Telegram. Или как мы сделали простейшего, но полезного бота

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

Привет! Меня зовут Боровков Евгений и я предприниматель. В этой статье я расскажу про свой pet-проект. Или как я решил проблему вечного поиска информации прямо в уютном Телеграммчике.

Читать далее

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

Архитектура универсального проекта Django

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

В ходе последних лет моей разработки проектов Django я понял, что почти все они имеют одно строение:
API, Apps, Config, Library, Utils, Workers...

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

Читать далее

Управление облаком с помощью API и CLI. Основы

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

В этой статье объясняем, зачем нужны инструменты автоматизации API и CLI и как с их помощью управлять инфраструктурой на примере Serverspace.

Читать далее

Как оставаться программистом, если у тебя память как у дрозофилы

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

Мой мадригал тем инструментам разработки, которые изменили мою жизнь

Программирование стало гораздо более многогранным ремеслом с тех пор, как в середине 1990-х я впервые попробовал AmigaBASIC. В те времена еще можно было купить один большой том о компьютере, на котором вы программируете – и там бы нашлось 99% всей нужной информации. Эта книга, где на множестве страниц уголки загнуты в качестве закладок, обклеенная стикерами, лежала бы у вас под рукой, пока вы вбивали бы команды в монохромный текстовый редактор.

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

Сегодня никто бы больше и не подумал покупать документацию по разработке – и Microsoft, и Apple свободно выкладывают свою документацию в Интернете для всех желающих. А что говорить о проектах с открытым исходным кодом!

Во времена npmPyPI и GitHub сложно объяснить, насколько неоднозначным решением (которое требовалось всесторонне обдумывать) раньше считалось потребовать хоть какие-нибудь возможности, которые выходили бы за рамки функционала операционной системы. Часто вместе с продуктом приходилось сдавать и все его зависимости.

Читать далее

Безопасный Spring REST с применением Spring Security и OAuth2

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

В этой статье мы продемонстрируем пример настройки Spring Security + OAuth2  для защиты конечных точек REST API на фреймворке Spring Boot. Клиенты и учетные данные пользователей будут храниться в реляционной базе данных (для баз данных H2 и PostgreSQL подготовлены примеры конфигураций).

Читать далее

Основное про API-шлюз в Kubernetes

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

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

Ранее мы описывали несколько способов доступа к модулям Kubernetes. Так, например, доступ к модулю pods можно получить через его IP-адрес, но важно учитывать, что поды по своей сути являются временными. Штатный способ - настроить Service: в этом случае IP-адрес стабилен, а задача Kubernetes - обеспечивать мапироание между Service и соответствующими ей подами. В настоящий момент доступны различные виды сервисов: только внутренние, NodePort, позволяющий открыть доступа извне кластера, и LoadBalancer, который полагается на сторонний компонент - обычно это на облачный провайдер. Не будем забывать и об Ingress, обеспечивающем маршрутизацию.

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

Читать далее

Интеграция с маркетплейсами или как я научился не волноваться и полюбил API-интеграцию

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

В нашей компании принято устраивать звонки-знакомства — на них клиенты могут напрямую пообщаться с командами, которые будут им помогать или сопровождать. Во время таких встреч поднимается множество вопросов, в том числе связанных с интеграцией. Чаще всего вопросы одни и те же, поэтому я даже имею заготовленный спич, который позволяет на пальцах объяснить принцип работы нашей интеграции и быстро оценить сложность её реализации на своей стороне. Спич долго был только в моей голове, но для Хабра я решил изложить его в письменном виде и поделиться с вами.

? Сначала материал не разрешили публиковать — сочли его рекламным. Но когда узнали все детали — что через наш API можно формировать до 500 запросов в сутки бесплатно (а этого по опыту хватает в среднем на обработку 50 заказов), — «дали зеленый свет» и попросили указать все это в начале материала. Что я и делаю ? Заявку на подключение доступа можно оформить на сайте компании через форму обратной связи.

Читать далее

Что станет с производительностью, если переборщить с ленивой загрузкой

Время на прочтение7 мин
Охват и читатели239
Ленивая загрузка – это выжидательный подход к работе с ресурсами, когда загрузка ресурса откладывается до момента, пока он фактически не понадобится. В таком случае при работе с критически важными ресурсами экономятся данные, а также снижается конкуренция за эти данные при работе по сети. Такой прием стал веб-стандартом в 2019 году, а сегодня loading=«lazy» для изображений поддерживается в большинстве крупных браузеров. На словах все отлично, но случается ли перебор с ленивой загрузкой?

В этом посте обобщены и проанализированы данные о прозрачности веба, взятые в открытых источниках, а также проделано импровизированное A/B тестирование. Эта работа помогает понять производительность и степень внедрения нативной ленивой загрузки при работе с картинками. Оказывается, ленивая загрузка может быть поразительно эффективна при избавлении от ненужных картиночных байт, но, если с ней переусердствовать – это плохо скажется на производительности. А именно: наше исследование показывает, что при более жадной загрузке изображений в пределах первичной области видимости – в сочетании с более свободной и ленивой загрузкой остальных – достижима золотая середина. Экономится количество загруженных байт и улучшаются показатели Core Web Vitals.
Читать дальше →

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