Обновить
45.17

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

О создании API

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

Эмуляция бэкенда: как разрабатывать изолированный фронтенд с помощью Mock Service Worker

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели20K

Всем привет! Сегодня я хочу рассказать о Mock Service Worker — технологии, которая позволяет эмулировать поведение бэкенда в ситуациях, когда по каким-то причинам невозможно использовать реальный бэкенд для полноценной разработки фронтенда, а также когда необходимо изолированно протестировать различные пользовательские сценарии. Тем более, что совсем недавно вышла новая мажорная версия библиотеки msw, и в ней достаточно много важных обновлений.

Читать далее

Что нужно знать о gRPC системному аналитику

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

Всем привет! Я Ирина Матевосян, системный аналитик в направлении продуктового и системного анализа в отделе Tinkoff Mobile Core. Мы разрабатываем общие библиотеки, которые используют все мобильные приложения экосистемы Тинькофф. 

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

Читать далее

Скачать коллекции запросов по API в Postman и Insomnia на основе написанных тест-кейсов API

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

Коллеги, все желаю хорошего дня.

Хочу предоставить коллекции в Postman и Insomnia, построенные на основе написанных тест-кейсов по API.

Читать далее

Spring Cloud Gateway. Единая точка входа или отказа: путь к non-blocking API gateway

Уровень сложностиСложный
Время на прочтение20 мин
Охват и читатели45K

Привет, Хабр! Меня зовут Никита Летов, я техлид бэкенд-разработки сервисов дистанционного банковского обслуживания Росбанка для физических лиц, или как модно сейчас говорить, ретейла. В этом посте я расскажу, что такое входная точка в приложение, когда в ней появляется необходимость и какие вообще задачи решает паттерн API Gateway. Мы рассмотрим классический блокирующий подход на примере гейтвея Netflix Zuul 1.x, проблемы, связанные с его эксплуатацией, а также реактивный Spring Cloud Gateway и сложности перехода на него. В заключение сравним два подхода.

Читать далее

Python лёгкий. Go простой. Простой != лёгкий

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

Python и Go отличаются по свойствам, и поэтому могут дополнять друг друга.

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

Читать далее

Как быстро и безболезненно закрыть регресс в API из связки PyTest + JSON Schema

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

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

Читать далее

CADLib API: От API к прямой работе с базой данных модели через SQL-запросы

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

Рассмотрим вариант расширения стандартного CADLib API в части выборки объектов с некоторыми параметрами из базы при помощи SQL-запросов на примере получения всех файлов публикации, в которых встречаются объекты коллизий. Подобную задачу мы решим сперва вручную при помощи только лишь методов CADLib API, а затем комбинированным способом, с переносом части логики в SQL-запрос. Весь исходный код доступен на GitHub по ссылке.

Читать далее

Переводим документацию API из Markdown в OpenAPI

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.3K

Всем привет! Я Ира — тимлид команды, которая занимается развитием и поддержкой публичного API hh.ru.

Несколько лет назад к нам пришли ребята из мобильной команды и сказали, что хотят документацию в OpenAPI формате. Для них это удобно, потому что можно генерировать DTO прямо из документации и не писать их руками. В то время у нас было выставлено около 100 URL, некоторые из них достаточно сложные. Например, в нашей документации у резюме есть три формата: нано, микро и полное. Каждый формат расширяет следующий, но теоретически могут быть и какие-то отличия, и это надо было изучать. В полном формате резюме более 30 полей и некоторые из них представлены в виде объектов. И такой URL у нас не один. Мы знали, что перевод документации на OpenAPI займет очень много времени, и в процессе мы, вероятно, столкнемся с трудностями (о них расскажу в статье), но при этом также понимали, что в долгосрочной перспективе мы получим от этого и много плюсов, поэтому решили попробовать. Что из этого получилось — читайте в нашем кейсе.

Читать далее

Бот и нет забот: как с помощью telegram-бота мы сделали приятнее жизнь автотестировщиков

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели5K

Привет, читатели Хабра!

Меня зовут Николай Усов, я работаю в отделе тестирования «Цифровой индустриальной платформы». В нашей команде в качестве системы управления тестированием программных продуктов используется Test IT. Система в целом нам нравится, претензий к функционалу почти совсем нет. Однако инструментарий Test IT не всегда позволяет настроить работу тестировщиков так, как удобно. Например, тот, кто с ней работал, знает, что при большом количестве тестов может быть затруднительным поддержание соответствия между автоматизированными и ручными тест-кейсами, если их слишком много. Плюс могут потребоваться иные методы расчета успешности автотестов или более простой интерфейс для удаленного просмотра статистики по прогонам. В этой статье я расскажу, как с помощью telegram-бота, работающего в связке с Test IT, мы сделали жизнь тестировщиков немного приятнее.

Читать далее

Эффективное использование Postman для тестирования RESTful API: от базовых запросов до автоматизации

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

В данной статье мы рассмотрим шаг за шагом, как использовать Postman для тестирования RESTful API. Начиная с отправки простых запросов, мы перейдем к созданию коллекций для организации тестовых сценариев. Затем мы обсудим возможности автоматизации тестирования с помощью коллекций и сценариев с использованием встроенных функций Postman.

Читать далее

Следование style guide для .proto файлов с помощью protolint в GitHub Actions

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

В этом посте я расскажу, как настроить protolint для проверки .proto файлов на соответствие официальному style guide в GitHub Actions и поделюсь практическим опытом его использования.

Читать далее

Обеспечение обратной совместимости gRPC API с помощью protolock в GitHub Actions

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели2.6K

В этом посте я поделюсь с вами подробной инструкцией по настройке автоматической проверки обратной совместимости gRPC API с помощью protolock в GitHub Actions.

Читать далее

Эффективное создание и деплой gRPC API с помощью GitHub Actions и Packages для проекта на Kotlin и React

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.7K

В этом посте я покажу, как с помощью GitHub Actions легко реализовать генерацию и публикацию gRPC API пакетов в GitHub Packages, в реестрах Apache Maven и npm. Если вы хотите освоить GitHub Packages для своих проектов и научиться генерировать gRPC API для сервисов на Kotlin/Java и gRPC-web клиентов — добро пожаловать под кат.

Читать далее

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

Postman Interceptor — альтернатива классическому сниффингу (краткий гайд по установке и взаимодействию)

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

Привет, хабровчане!

У вас было такое, когда снифаешь спокойно трафик через бесплатную версию Charles, а потом появляется окошко через час работы и закрывает программу? А может вы думаете, что переросли функционал других снифферов и хотите попробовать что-то новое и необычное? Или устали от грустного UI, когда перехватываете запросы? Если хотя бы на один вопросов вы ответили «да» — добро пожаловать в эту обзорную статью.

Меня зовут Антон, я QA Web & Mobile в компании MobileUp. И сегодня я расскажу о полезном инструменте для сниффинга трафика в вебе от команды Postman. А именно — о Postman Interceptor. В статье разберём, что это, для чего нужно, как установить и пользоваться. А в конце я оставлю ответы на вопросы, которые мне задавали коллеги, когда я рассказал про этот инструмент.

Читать далее

GigaShell. Сберовская нейросеть в твоей консоли

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

Консоль я искренне люблю, и идея прикрутить современный интерактивный помощник к такой, в хорошем смысле архаичной вещи, как linux-консоль, мне понравилась. Этакое сочетание чего-то старого, проверенного и надёжного, с чем-то новым, экспериментальным, выдающим fuzzy ответы, но перспективным и нужным.

Давайте же сделаем это!

Make It Right! Максимум пользы, минимум проблем: рекомендации по написанию API автотестов на Python

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

Привет, Хабр! Меня зовут Катерина, я инженер по автотестированию в команде онлайн-кинотеатра PREMIER и сегодня я хотела бы поделиться с вами своим опытом в написании API автотестов на Python. Я работаю в сфере автотестирования уже довольно давно и на практике встречаю проекты из разных сфер деятельности (банкинг, ритейл, телекоммуникации, строительство, развлечения и др.) зачастую, работая над ними, я сталкивалась с одной общей проблемой - код автотестов был тяжелым в понимании и плохо масштабируемым. Приходилось его капитально рефакторить, а это совсем невесело;) В этой статье  я хочу поделиться советами, как сделать ваш код более «чистым», легким в понимании и расширении. Мне всегда хочется думать, что тот, кто будет работать с моим кодом в будущем, будет думать обо мне и моём коде в положительном ключе, а не ругаться на него. Если вы разделяете мою философию, прошу под кат.

Читать далее

OpenAPI/Swagger для начинающих

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

Эта статья в основном для аналитиков, которые впервые сталкиваются с необходимостью описания запросов в Swagger, но может быть полезна всем, кто хочет разобраться или ищет подсказку.

Читать далее

Особенности интеграции метода CallPassword ID

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели1K

Двухфакторная идентификация и подтверждение телефонного номера пользователя сегодня входят в «мастхэв» каждого крупного ИТ-сервиса. CallPassword ID предлагает возможность идентифицировать клиента по его номеру телефона через исходящий звонок на номера компании. Способ хоть и не самый привычный, но набирающий популярность в виду надежности и низкой стоимости. Разберем возможности для интеграции метода и сравним их с популярными аналогами.

Читать далее

Сервисы дружитес. Как платформа упрощает создание интеграций без ошибок

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели4.1K

Всем привет! Кратко обо мне: меня зовут Никита и я уже третий год работаю над тем, чтобы платформа СберМаркета становилась лучше день ото дня. Мой основной язык программирования — Go, но, учитывая специфику платформенной разработки, еще и bash.

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

Читать далее

API vs ABI: разницу видят не только лишь все

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели10K

Привет, дорогой читатель! Думаю, ты точно знаешь, что такое API и как сделать, чтобы твои изменения были API-совместимыми. На самом деле я сам никогда не задумывался, что существует ABI-совместимость, до момента, пока не столкнулся с разработкой библиотеки.

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

Читать далее

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