Как стать автором
Обновить
28.63
Рейтинг

API *

Интерфейс программирования приложений

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

Создаём асинхронный Fluent API

API *C# *ООП *Параллельное программирование *

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

Я нашёл кучу объяснений и примеров кода для реализации Fluent API, однако я не мог найти внятных объяснений, как реализовать в этом же Fluent API асинхронные методы, аки делает это какой-нибудь Linq. Библиотеки используют какую-то эльфийскую магию, но я нашёл драйвер MongoDB, на исходном коде которого я и разбирался, как реализовать асинхронный Fluent API.

Для тех, кто не знаком с темой Fluent API, прошу к прочтению.

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Просмотры 1.3K
Комментарии 1

Новости

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

Блог компании Издательский дом «Питер» Высокая производительность *JavaScript *Программирование *API *
Перевод
image

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


Первый шаг к пониманию ошибок JavaScript – разобраться, откуда они берутся. Большинство ошибок JavaScript, встречающихся в природе, автоматически генерируются самим движком JavaScript. Существует множество типов ошибок, но, как правило, все они относятся к одному из трех классов.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.3K
Комментарии 5

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

Блог компании МТТ CMS *PHP *API *
Tutorial

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

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

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

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Просмотры 717
Комментарии 0

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

PHP *JavaScript *API *1С-Битрикс *CRM-системы *
Из песочницы

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 991
Комментарии 5

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

Блог компании Axenix (ex-Accenture) API *Микросервисы *

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

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 5.9K
Комментарии 7

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

PHP *Анализ и проектирование систем *API *Геоинформационные сервисы *Управление проектами *
Tutorial

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

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

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 4K
Комментарии 4

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

Блог компании TINKOFF API *Управление разработкой *Управление проектами *Управление продуктом *

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

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 1.9K
Комментарии 4

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

Блог компании Datanomica API *Развитие стартапа Облачные сервисы *

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

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Просмотры 807
Комментарии 7

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

Java *API *
Из песочницы

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

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 8.6K
Комментарии 30

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

Python *Django *Проектирование и рефакторинг *API *
Из песочницы

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

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

Читать далее
Всего голосов 13: ↑11 и ↓2 +9
Просмотры 6.6K
Комментарии 15

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

Блог компании Serverspace IT-инфраструктура *API *

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

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 1K
Комментарии 0

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

Python *Программирование *API *Подготовка технической документации *
Перевод

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

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

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

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

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

Читать далее
Всего голосов 51: ↑47 и ↓4 +43
Просмотры 51K
Комментарии 39

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

Блог компании Southbridge Java *API *Kotlin *
Перевод

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

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 3.7K
Комментарии 4

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

Блог компании Nixys IT-инфраструктура *API *DevOps *Kubernetes *
Перевод
Tutorial

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

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 3.1K
Комментарии 0

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

API *Разработка под e-commerce *Управление e-commerce *Управление продажами *
Tutorial

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

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

Читать далее
Рейтинг 0
Просмотры 1.2K
Комментарии 6

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

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

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

Сервис, который должен был объединить торговые площадки США Ebay, Amazon и Zappos

Разработка веб-сайтов *Интерфейсы *API *Joomla *Разработка под e-commerce *

В далёком 2012 году довелось мне участвовать в одном интересном проекте - BuyinUsa. Идея проекта была в следующем: объединить в одном месте товарные предложения с наиболее популярных торговых площадок США, представить их российским потребителям, взять на себя доставку и конвертацию при оплате.

Для начала решили взять самые крупные: ebay, amazon, zappos. К тому же в этот год zappos вообще закрыл возможность для российских пользователей даже заходить на их сайт. А тут мы такие…

Как, наверно, кто-то еще помнить, тогда вездесущего алиэкспресс еще не было, да и умением покупать за границей отличались лишь “продвинутые интернетчики”, а наша задача была предложить услугу как можно более массовому потребителю.
Я выступал в роли и соучредителя и в качестве, как бы сейчас сказали, тимлида, так как вся разработка проекта была на мне. Я был еще достаточно юным и пылал энтузиазмом:)

Вся разработка осуществлялась удаленно, программисты, вебмастер, дизайнер и я работали исключительно через сеть. Использовались в основном простые средства вроде teamview и skype. В качестве основы для сайта взяли всем известную Joomla, а для интернет-магазина Virtualmart. Конечно, по современным воззрениям это ужас-ужас, но тогда мне так не казалось.

Что надо было решить:

1. Карточка товаров, которые были очень разноплановые. А от характеристик зависела возможность отфильтровать товары в поиске.

Решение: взяли более ста карточек с разными характеристиками и просили их отсортировать по важности знакомых и друзей. Сравнивали результаты и выделяли главные. А потом скопировали карточку с Запоса и отредактировали её под свои нужды:)

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 1.7K
Комментарии 7

Гайд по первичной настройке асинхронного Python-приложения с GraphQL-библиотекой Strawberry

Python *API *
Tutorial

Пишете на Python и давно хотели запрыгнуть на поезд хайпа по GraphQL, но никак не могли выбрать между Graphene и Ariadne? Предлагаем вам третий вариант – Strawberry.

Strawberry – code-first библиотека с большим количеством батареек. 2.6 тыс. звёзд в репозитории на GitHub. Для описания типов можно использовать dataclasses и pydantic-модели. Из коробки поддерживается асинхронность.

В этом гайде мы напишем приложение, реализующее создание и получение пользователей (users) и их книг (books).

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 1.9K
Комментарии 0

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