🧩 Как интеграцию видит обычный пользователь? 🧩
Смотреть на приложения с точки зрения системного аналитика или разработчика всегда интересно. Поэтому сегодня я начну погружать вас в технические детали того, что может быть “под капотом” простой экранной формы с кучей полей ввода.
Пользователь банковского приложения #GABank для юрлиц выбирает функцию “Сделать перевод по реквизитам”, нажав на кнопку в одном из основных экранов. Отрисовывается новый экран - вы видите поля для ввода реквизитов. Пока никакого волшебства в виде запросов к серверу для загрузки данных нет.
Поля ввода для осуществления перевода:
+ ИНН получателя,
✅ КПП получателя,
✅ полное наименование получателя,
☑️ БИК банка,
✅ название банка,
✅ к/с банка (номер корреспондентского счета банка),
☑️ р/с (номер расчетного счета получателя),
+ сумма,
+ назначение платежа,
+ НДС.
Сейчас все заполняется вручную.
Но часть реквизитов может заполняться автоматически:
✅ - на основании данных DaData,
☑️ - из данных банка.
КАКОЙ СЦЕНАРИЙ ОЖИДАЕМ ПОЛУЧИТЬ:
1. Пользователь начинает вводить ИНН получателя.
После ввода 5 символов начинаем предлагать варианты выбора организации из списка.
🧩Варианты к выбору из списка получаем благодаря интеграции с DaData, параметры загружаются из неё.
Если пользователь выбрал организацию из списка или она найдена по ИНН, то автоматически заполнять все поля до БИК.
2. Пользователь начинает вводить БИК банка.
После ввода 4 символов начинать предлагать варианты банков для выбора.
🧩Интеграция с DaData.
Если удалось найти банк по БИК, то заполнять все поля. Р/с также будет заполнен автоматически, если данные о для этого юрица сохранены в БД банка.
3. Пользователь вводит оставшиеся параметры и делает перевод.
4. После успешного перевода, если р/с не был ранее сохранен, то сохраняем его в БД банка.
Итого:
+ Пользователь вводит только 5/10 полей.
+ Часть из них только наполовину.
Так начинается работа с интеграциеями. Понимание пользовательского сценария и бизнес-цели того, что мы делаем, важны.
#ИнтеграцииGA
Смотреть на приложения с точки зрения системного аналитика или разработчика всегда интересно. Поэтому сегодня я начну погружать вас в технические детали того, что может быть “под капотом” простой экранной формы с кучей полей ввода.
Пользователь банковского приложения #GABank для юрлиц выбирает функцию “Сделать перевод по реквизитам”, нажав на кнопку в одном из основных экранов. Отрисовывается новый экран - вы видите поля для ввода реквизитов. Пока никакого волшебства в виде запросов к серверу для загрузки данных нет.
Поля ввода для осуществления перевода:
+ ИНН получателя,
✅ КПП получателя,
✅ полное наименование получателя,
☑️ БИК банка,
✅ название банка,
✅ к/с банка (номер корреспондентского счета банка),
☑️ р/с (номер расчетного счета получателя),
+ сумма,
+ назначение платежа,
+ НДС.
Сейчас все заполняется вручную.
Но часть реквизитов может заполняться автоматически:
✅ - на основании данных DaData,
☑️ - из данных банка.
КАКОЙ СЦЕНАРИЙ ОЖИДАЕМ ПОЛУЧИТЬ:
1. Пользователь начинает вводить ИНН получателя.
После ввода 5 символов начинаем предлагать варианты выбора организации из списка.
🧩Варианты к выбору из списка получаем благодаря интеграции с DaData, параметры загружаются из неё.
Если пользователь выбрал организацию из списка или она найдена по ИНН, то автоматически заполнять все поля до БИК.
2. Пользователь начинает вводить БИК банка.
После ввода 4 символов начинать предлагать варианты банков для выбора.
🧩Интеграция с DaData.
Если удалось найти банк по БИК, то заполнять все поля. Р/с также будет заполнен автоматически, если данные о для этого юрица сохранены в БД банка.
3. Пользователь вводит оставшиеся параметры и делает перевод.
4. После успешного перевода, если р/с не был ранее сохранен, то сохраняем его в БД банка.
Итого:
+ Пользователь вводит только 5/10 полей.
+ Часть из них только наполовину.
Так начинается работа с интеграциеями. Понимание пользовательского сценария и бизнес-цели того, что мы делаем, важны.
#ИнтеграцииGA
👏18👍10🔥9❤4
GetAnalyst_Интеграции_ЧЕК_ЛИСТ_ФУНКЦИОНАЛЬНЫХ_ТРЕБОВАНИЙ.pdf
1.8 MB
✅ Функциональные требования к Интеграции: чек-лист ✅
Когда мы разрабатываем требования (ФТ) к интеграции систем, то на поверхности видны далеко не все требования, которые нужно описать для бизнес-заказчиков и разработчиков, чтобы все стороны ясно понимали объем работ.
Поэтому предлагаю вам познакомиться с универсальным чек-листом, который поможет написать полный список требований для новой интеграции в системе.
Чек-лист функциональных требований:
1. Конфигурационные параметры
2. Авторизация
3. Ре-авторизация
4. Хранение данных в БД - изменение модели
5. Интеграционные API методы (ключевые функции)
6. Логирование, метрики и алерты
Прочитать подробнее про каждый вид требования и изучить примеры можно в гайде для системных аналитиков.
Пользуйтесь и сохраняйте на будущее 💾❤️
#ИнтеграцииGA
Когда мы разрабатываем требования (ФТ) к интеграции систем, то на поверхности видны далеко не все требования, которые нужно описать для бизнес-заказчиков и разработчиков, чтобы все стороны ясно понимали объем работ.
Поэтому предлагаю вам познакомиться с универсальным чек-листом, который поможет написать полный список требований для новой интеграции в системе.
Чек-лист функциональных требований:
1. Конфигурационные параметры
2. Авторизация
3. Ре-авторизация
4. Хранение данных в БД - изменение модели
5. Интеграционные API методы (ключевые функции)
6. Логирование, метрики и алерты
Прочитать подробнее про каждый вид требования и изучить примеры можно в гайде для системных аналитиков.
Пользуйтесь и сохраняйте на будущее 💾❤️
#ИнтеграцииGA
❤🔥34👍18🔥4🤔1
👩💻 Пример ФТ к Интеграции с DaData для приложения #GABank 👩💻
С учетом пользовательского сценария для автозаполнения реквизитов на перевод средств в банке и чек-листа функциональных требований, опубликованного в предыдущем посте, у меня получился следующий список функциональных требований к разработке:
1-И. Обеспечить хранение конфигурационных параметров для интеграции с DaData: авторизационные параметры, URL-ы тестовой и боевой площадки, лимит на количество запросов.
2-И. Реализовать общий механизм авторизации банковской системы с внешней системой DaData.
3. Обеспечить хранение данных о расчетных счетах (р/c) юрлиц в различных банках.
4-И. Реализовать возможность поиска организации по ИНН с использованием интеграции с внешней системой DaData. Поиск организации должен осуществляться при вводе 5 или более символов.
НФТ: Запросы на поиск в систему DaData должны отправляться не чаще 1 раза в 2 сек.
5-И. Реализовать возможность поиска банка по БИК с использованием интеграции с внешней системой DaData. Поиск банка должен осуществляться при вводе 4 или более символов.
НФТ: как в п.4.
6-И. Вести учет количества запросов в сутки к внешней системе DaData, визуализировать на графике Grafana и информировать ответственных бизнес-сотрудников, если значения в сутки составляет более 85% от предоставленного лимита по оплаченному тарифу (ссылка на требования к оплате при использовании сервиса DaData, но нам для аналитики хватит и бесплатной версии).
И - связано с интеграцией
НФТ - нефункциональное требование
P.S.Я рада комментариям про альтернативные сценарии и обработку ошибок в интеграциях!)) Это тоже обсудим в рамках проекта, но на уровне ФТ считаю, что это будет обязательно заложено в логику работы.
Есть ли еще ФТ, которые хочется включить? Если все учли, то ставим 👍под постом и двигаемся далее.
#ИнтеграцииGA
С учетом пользовательского сценария для автозаполнения реквизитов на перевод средств в банке и чек-листа функциональных требований, опубликованного в предыдущем посте, у меня получился следующий список функциональных требований к разработке:
1-И. Обеспечить хранение конфигурационных параметров для интеграции с DaData: авторизационные параметры, URL-ы тестовой и боевой площадки, лимит на количество запросов.
2-И. Реализовать общий механизм авторизации банковской системы с внешней системой DaData.
3. Обеспечить хранение данных о расчетных счетах (р/c) юрлиц в различных банках.
4-И. Реализовать возможность поиска организации по ИНН с использованием интеграции с внешней системой DaData. Поиск организации должен осуществляться при вводе 5 или более символов.
НФТ: Запросы на поиск в систему DaData должны отправляться не чаще 1 раза в 2 сек.
5-И. Реализовать возможность поиска банка по БИК с использованием интеграции с внешней системой DaData. Поиск банка должен осуществляться при вводе 4 или более символов.
НФТ: как в п.4.
6-И. Вести учет количества запросов в сутки к внешней системе DaData, визуализировать на графике Grafana и информировать ответственных бизнес-сотрудников, если значения в сутки составляет более 85% от предоставленного лимита по оплаченному тарифу (ссылка на требования к оплате при использовании сервиса DaData, но нам для аналитики хватит и бесплатной версии).
И - связано с интеграцией
НФТ - нефункциональное требование
P.S.
Есть ли еще ФТ, которые хочется включить? Если все учли, то ставим 👍под постом и двигаемся далее.
#ИнтеграцииGA
👍16❤🔥2❤1
Подводя итоги половины 2024, поняла, что этот год перенасыщен событиями 🙌
Работа порой чуть ли не 24/7. Иногда кажется, что я ничего не успеваю. Но если взглянуть на количество галочек в ежедневнике за каждый день, то обычный человек может испугаться. А я думаю как вместить ещё.
Бывает тяжело, но у меня есть ежедневные ритуалы (спорт, завтраки, медитации, прогулки), которые помогают оставаться в форме и подзаряжаться ежедневно. И конечно я радуюсь и наполняюсь энергией, когда вижу результаты и обратную связь от людей, для которых работаю я и мои команды.
На прошлой неделе я смогла устроить небольшой отпуск, и теперь мне кажется, что на этой неделе я должна свернуть горы 🏔🌇
Она только начинается, а я уже в предвкушении, поскольку впереди:
☑️ Прилететь в Нью-Йорк и успеть хоть немного погулять по нему.
☑️ Бизнес-встречи.
☑️ Конференция по использованию ИИ в разработке (ИИ - Искусственный Интеллект).
☑️ Первая онлайн-встреча по проекту Архитектуры с новым потоком.
☑️ Стандартный объем задач по ведению проектов и работе с программами GetAnalyst.
Каждую неделю думаю, что сложная и насыщенная событиями неделя закончилась и дальше легче. А нет, вот и новая прилетела! Расписание загружено на 200%. Придётся успевать всё, что возможно, и что невозможно))
“Зона комфорта” не для меня, хочется постоянно чувствовать рост и проходить через челленджи. И 2024 даёт их сполна и помогает двигаться к поставленным целям!
А как у вас с рабочими моментами в этом году по ощущениям? Высокая загрузка? Есть челленджи, через которые сейчас проходите?
Делитесь с нами в комментариях и как справляетесь морально, когда тяжело 🙂
Работа порой чуть ли не 24/7. Иногда кажется, что я ничего не успеваю. Но если взглянуть на количество галочек в ежедневнике за каждый день, то обычный человек может испугаться. А я думаю как вместить ещё.
Бывает тяжело, но у меня есть ежедневные ритуалы (спорт, завтраки, медитации, прогулки), которые помогают оставаться в форме и подзаряжаться ежедневно. И конечно я радуюсь и наполняюсь энергией, когда вижу результаты и обратную связь от людей, для которых работаю я и мои команды.
На прошлой неделе я смогла устроить небольшой отпуск, и теперь мне кажется, что на этой неделе я должна свернуть горы 🏔🌇
Она только начинается, а я уже в предвкушении, поскольку впереди:
☑️ Прилететь в Нью-Йорк и успеть хоть немного погулять по нему.
☑️ Бизнес-встречи.
☑️ Конференция по использованию ИИ в разработке (ИИ - Искусственный Интеллект).
☑️ Первая онлайн-встреча по проекту Архитектуры с новым потоком.
☑️ Стандартный объем задач по ведению проектов и работе с программами GetAnalyst.
Каждую неделю думаю, что сложная и насыщенная событиями неделя закончилась и дальше легче. А нет, вот и новая прилетела! Расписание загружено на 200%. Придётся успевать всё, что возможно, и что невозможно))
“Зона комфорта” не для меня, хочется постоянно чувствовать рост и проходить через челленджи. И 2024 даёт их сполна и помогает двигаться к поставленным целям!
А как у вас с рабочими моментами в этом году по ощущениям? Высокая загрузка? Есть челленджи, через которые сейчас проходите?
Делитесь с нами в комментариях и как справляетесь морально, когда тяжело 🙂
🔥13❤8👍8❤🔥1🤯1
📁 БД системы и ее значение в задачах на Интеграции 📁
Один из ключевых этапов работы системного аналитика при постановке задач на интеграции - маппинг (сопоставление) данных между различными системами.
В описание маппинга включают данные:
- API внешней системы.
- API системы, в которой делают интеграцию.
- БД системы, в которой делают интеграцию.
- UI системы, в которой делают интеграцию, при постановке задач на пользовательские приложения с экранами (фронтенд).
Понимание структуры базы данных (БД) проекта является важным аспектом. Это необходимо для корректного маппинга данных, особенно в случаях, когда в результате работы интеграционного сценария нужно что-либо сохранить в БД или сопоставить с данными, хранимыми в системе.
Поэтому, прежде чем мы перейдём к следующему этапу работы с задачей по автозаполнению данных о юрлицах и их счетах в #GABank, я хочу познакомить вас с необходимой нам частью структуры БД проекта, которую мы будем использовать для маппинга данных в постановках задач.
👇
Эта таблица хранит информацию о компаниях (юридических лицах), которые являются участниками банковских операций.
Если компания открывает счет в GABank, то данные о ней создаются в системе. Если нет, то компания может быть добавлена в список как внешняя при создании перевода в неё.
+ id: Уникальный идентификатор компании (первичный ключ).
+ inn: ИНН компании.
+ kpp: КПП компании. Может быть сохранен на основании интеграции с DaData, при получении информации о компании по ИНН.
+ name: Краткое название компании. Может быть сохранено из DaData.
+ full_name: Полное название компании. Может быть сохранено из DaData.
#ИнтеграцииGA
Продолжение 👇
Один из ключевых этапов работы системного аналитика при постановке задач на интеграции - маппинг (сопоставление) данных между различными системами.
В описание маппинга включают данные:
- API внешней системы.
- API системы, в которой делают интеграцию.
- БД системы, в которой делают интеграцию.
- UI системы, в которой делают интеграцию, при постановке задач на пользовательские приложения с экранами (фронтенд).
Понимание структуры базы данных (БД) проекта является важным аспектом. Это необходимо для корректного маппинга данных, особенно в случаях, когда в результате работы интеграционного сценария нужно что-либо сохранить в БД или сопоставить с данными, хранимыми в системе.
Поэтому, прежде чем мы перейдём к следующему этапу работы с задачей по автозаполнению данных о юрлицах и их счетах в #GABank, я хочу познакомить вас с необходимой нам частью структуры БД проекта, которую мы будем использовать для маппинга данных в постановках задач.
👇
Таблица company
Эта таблица хранит информацию о компаниях (юридических лицах), которые являются участниками банковских операций.
Если компания открывает счет в GABank, то данные о ней создаются в системе. Если нет, то компания может быть добавлена в список как внешняя при создании перевода в неё.
+ id: Уникальный идентификатор компании (первичный ключ).
+ inn: ИНН компании.
+ kpp: КПП компании. Может быть сохранен на основании интеграции с DaData, при получении информации о компании по ИНН.
+ name: Краткое название компании. Может быть сохранено из DaData.
+ full_name: Полное название компании. Может быть сохранено из DaData.
#ИнтеграцииGA
Продолжение 👇
❤16👍9🔥3
📁 БД системы и ее значение в задачах на Интеграции 📁
Эта таблица устанавливает связи между компаниями, показывая, какие компании связаны друг с другом через переводы.
+ company_id: Идентификатор компании, которая имеет счет в GABank, и может делать переводы в другие компании, в том числе на их счета в других банках или на свой счет в другом банке (внешний ключ).
+ related_company_id: Идентификатор связанной компании (внешний ключ).
+ created_by_transfer_id: Идентификатор перевода, через который впервые установлена связь (внешний ключ).
is_visible: Поле, указывающее, видна ли связь пользователям - показывается ли сразу эта запись при переводе в списке подсказок..
Эта таблица хранит информацию о банках, через которые компании осуществляют переводы.
+ id: Уникальный идентификатор банка (первичный ключ).
+ name: Название банка. Может быть сохранено из DaData.
+ bik: БИК банка.
+ correspondent_number: Корреспондентский счет банка. Может быть сохранено из DaData.
created_at: Дата создания записи.
Эта таблица хранит информацию о счетах компаний внутри GABank.
+ id: Уникальный идентификатор счета (первичный ключ).
+ bank_id: Идентификатор банка, в котором счет (внешний ключ).
+ company_id: Идентификатор компании, которой принадлежит счет (внешний ключ).
+ number: Номер расчетного счета.
+ created_at: Дата создания счета.
Эта таблица хранит информацию о банковских счетах компаний в других банках.
+ id: Уникальный идентификатор внешнего счета (первичный ключ).
+ bank_id: Идентификатор банка (внешний ключ).
+ company_id: Идентификатор компании (внешний ключ).
+ number: Номер счета.
+ created_at: Дата создания записи.
Эта таблица хранит информацию о банковских переводах.
+ id: Уникальный идентификатор перевода (первичный ключ).
+ recipient_account_id: Идентификатор счета получателя (внешний ключ).
+ is_external: Флаг, указывающий, является ли перевод внешним, т.е. данные о счете будут в таблице external_account.
+ sender_account_id: Идентификатор счета отправителя (внешний ключ).
+ amount: Сумма перевода.
+ currency: Валюта перевода.
+ vat: НДС.
+ notes: Примечания к переводу.
+ status: Статус перевода.
+ created_at: Дата создания.
+ transferred_at: Дата осуществления перевода.
Эта структура БД обеспечивает хранение всех необходимых данных для выполнения и отслеживания банковских переводов между юридическими лицами в приложении #GABank.
Также она позволяет сохранять данные о компаниях, в которые уже были переводы ранее, чтобы уменьшить количество запросов во внешнюю систему DaData и оптимизироваь взаимодействие с ней. Это полезно в случаях, когда DaData недоступна, и в случаях, когда нам надо соблюдать лимиты связанные с платностью сервиса DaData.
#ИнтеграцииGA
Таблица related_companies
Эта таблица устанавливает связи между компаниями, показывая, какие компании связаны друг с другом через переводы.
+ company_id: Идентификатор компании, которая имеет счет в GABank, и может делать переводы в другие компании, в том числе на их счета в других банках или на свой счет в другом банке (внешний ключ).
+ related_company_id: Идентификатор связанной компании (внешний ключ).
+ created_by_transfer_id: Идентификатор перевода, через который впервые установлена связь (внешний ключ).
is_visible: Поле, указывающее, видна ли связь пользователям - показывается ли сразу эта запись при переводе в списке подсказок..
Таблица bank
Эта таблица хранит информацию о банках, через которые компании осуществляют переводы.
+ id: Уникальный идентификатор банка (первичный ключ).
+ name: Название банка. Может быть сохранено из DaData.
+ bik: БИК банка.
+ correspondent_number: Корреспондентский счет банка. Может быть сохранено из DaData.
created_at: Дата создания записи.
Таблица account
Эта таблица хранит информацию о счетах компаний внутри GABank.
+ id: Уникальный идентификатор счета (первичный ключ).
+ bank_id: Идентификатор банка, в котором счет (внешний ключ).
+ company_id: Идентификатор компании, которой принадлежит счет (внешний ключ).
+ number: Номер расчетного счета.
+ created_at: Дата создания счета.
Таблица external_account
Эта таблица хранит информацию о банковских счетах компаний в других банках.
+ id: Уникальный идентификатор внешнего счета (первичный ключ).
+ bank_id: Идентификатор банка (внешний ключ).
+ company_id: Идентификатор компании (внешний ключ).
+ number: Номер счета.
+ created_at: Дата создания записи.
Таблица transfer
Эта таблица хранит информацию о банковских переводах.
+ id: Уникальный идентификатор перевода (первичный ключ).
+ recipient_account_id: Идентификатор счета получателя (внешний ключ).
+ is_external: Флаг, указывающий, является ли перевод внешним, т.е. данные о счете будут в таблице external_account.
+ sender_account_id: Идентификатор счета отправителя (внешний ключ).
+ amount: Сумма перевода.
+ currency: Валюта перевода.
+ vat: НДС.
+ notes: Примечания к переводу.
+ status: Статус перевода.
+ created_at: Дата создания.
+ transferred_at: Дата осуществления перевода.
Эта структура БД обеспечивает хранение всех необходимых данных для выполнения и отслеживания банковских переводов между юридическими лицами в приложении #GABank.
Также она позволяет сохранять данные о компаниях, в которые уже были переводы ранее, чтобы уменьшить количество запросов во внешнюю систему DaData и оптимизироваь взаимодействие с ней. Это полезно в случаях, когда DaData недоступна, и в случаях, когда нам надо соблюдать лимиты связанные с платностью сервиса DaData.
#ИнтеграцииGA
🔥15👍7❤3
🔥 Проектирование БД для проекта с нуля - 2 важных видео🔥
Коллеги, выше показала небольшую модель БД, но не для всех может быть понятно как она получилась для приложения GABank.
Если у вас нет опыта проектирования БД с нуля, нужно структурировать знания по построению ER-диаграмм или необходимо прокачать знания по БД, то настоятельно рекомендую посмотреть эти видео:
1. Проектирование БД: концептуальный уровень
2. Проектирование БД: логический уровень + ChatGPT
В них на примере проекта в деталях рассказываю как проектировать БД с нуля. ❗️Всего два урока, после которых фундаментальные знания будут разложены по полочкам.
А если вам хочется глубже погружаться в работу с БД и SQL, то всегда можно подключиться на дополнительные практикумы.
Не откладывайте и обязательно смотрите эти два видео!)) Они очень помогут улучшить ваши знания и дадут опыт работы с БД! 🙌
Коллеги, выше показала небольшую модель БД, но не для всех может быть понятно как она получилась для приложения GABank.
Если у вас нет опыта проектирования БД с нуля, нужно структурировать знания по построению ER-диаграмм или необходимо прокачать знания по БД, то настоятельно рекомендую посмотреть эти видео:
1. Проектирование БД: концептуальный уровень
2. Проектирование БД: логический уровень + ChatGPT
В них на примере проекта в деталях рассказываю как проектировать БД с нуля. ❗️Всего два урока, после которых фундаментальные знания будут разложены по полочкам.
А если вам хочется глубже погружаться в работу с БД и SQL, то всегда можно подключиться на дополнительные практикумы.
Не откладывайте и обязательно смотрите эти два видео!)) Они очень помогут улучшить ваши знания и дадут опыт работы с БД! 🙌
❤24🔥4🥰3👍1🤣1
🔬 Разбираем архитектуру интеграционного проекта #GABank 🔬
Понимание того, как архитектурно будет устроена работа системы для обеспечения процесса интеграции с DaData для авто-заполнения платежной формы, важно хотя бы на верхнеуровневом уровне.
Главное, что мы должны показать на схеме - это её основные компоненты:
1. Пользовательские приложения / Frontend / UI
2. Backend с базовым пониманием архитектуры: сервисы / микросервисы / монолит
3. Базы данных
4. Файловые хранилища
5. Внешние системы
6. Оборудование
Стоит обратить внимание, что когда я готовила схему для нашего приложения банка, прикрепленную к посту, я сделала допущение, что Backend монолитный. В реальных банковских проектах это не так - там SOA и MSA (сервисная и микросервисная архитектуры).
Компоненты #GABank, задействованные в процессе ввода реквизитов для перевода между юрлицами и отраженные на схеме:
- Мобильные приложения iOS/Android
- Веб-приложение
- Монолитный Backend с REST API для клиентов
- Внешняя система DaData, с интеграцией по HTTP
- Единая база данных
- Файловое хранилище для PDF по итогам переводов
На основании их создана схема.
Глядя на полученную схему, мы можем понять последовательность передачи данных между её частями. Это позволяет нам лучше описать интеграционный сценарий, с более глубоким пониманием порядка взаимодействия её компонентов.
В идеале, дополнить это UML-диаграммой последовательностей, которая помогает рассказывать интеграционные сценарии. Но не обязательно :)
Полученная схема архитектуры представлена с применением внутренней нотации GetAnalyst. Для архитектурных схем также можно использовать нотацию моделирования C4 или другую, которая принята в проекте 🙌
#ИнтеграцииGA
Понимание того, как архитектурно будет устроена работа системы для обеспечения процесса интеграции с DaData для авто-заполнения платежной формы, важно хотя бы на верхнеуровневом уровне.
Главное, что мы должны показать на схеме - это её основные компоненты:
1. Пользовательские приложения / Frontend / UI
2. Backend с базовым пониманием архитектуры: сервисы / микросервисы / монолит
3. Базы данных
4. Файловые хранилища
5. Внешние системы
6. Оборудование
Стоит обратить внимание, что когда я готовила схему для нашего приложения банка, прикрепленную к посту, я сделала допущение, что Backend монолитный. В реальных банковских проектах это не так - там SOA и MSA (сервисная и микросервисная архитектуры).
Компоненты #GABank, задействованные в процессе ввода реквизитов для перевода между юрлицами и отраженные на схеме:
- Мобильные приложения iOS/Android
- Веб-приложение
- Монолитный Backend с REST API для клиентов
- Внешняя система DaData, с интеграцией по HTTP
- Единая база данных
- Файловое хранилище для PDF по итогам переводов
На основании их создана схема.
Глядя на полученную схему, мы можем понять последовательность передачи данных между её частями. Это позволяет нам лучше описать интеграционный сценарий, с более глубоким пониманием порядка взаимодействия её компонентов.
В идеале, дополнить это UML-диаграммой последовательностей, которая помогает рассказывать интеграционные сценарии. Но не обязательно :)
Полученная схема архитектуры представлена с применением внутренней нотации GetAnalyst. Для архитектурных схем также можно использовать нотацию моделирования C4 или другую, которая принята в проекте 🙌
#ИнтеграцииGA
❤12👍8🔥2👎1
Тренд использования искусственного интеллекта, как ChatGPT, продолжает набирать обороты. Компании ищут сотрудников со знаниями и опытом работы с ИИ. Особенно с опытом интеграции по API.
Немного важных моментов с конференции, которую посетила:
1. ChatGPT - это модель, на основе которой работают большинство молодых стартапов в США. Основатели собирают от 1млн$ за креативные идеи, как применить ChatGPT и зарабатывать на этом деньги.
Самое впечатляющее, что уже увидела: ИИ для программирования бэкенда с нуля до деполоя на сервера в одном приложении на основе ИИ. Код знать не надо 🤩
На вход - постановки задач от системного аналитика, прям на все 100%. Взяла контакты основателя, планирую протестировать насколько хорошо работает.
2. За пределами ChatGPT есть другие модели искусственного интеллекта. Да, ChatGPT признан основным, но я нашла инструмент с моделью ИИ, который теперь вместо меня проверяет подлинность сгенерированной информации.
3. Приложения с Искусственным Интеллектом настоятельно рекомендуют сразу делать в сервисной и микросервисной архитектуре. Если монолит - проблемы в скорости работы.
4. Проблемы безопасности при использовании ИИ стоят на высоком уровне.
Задача тестировщика при работе с Искусственным Интеллектом находить скрипты для самоуничтожения.
Задача аналитика - предотвращать такую возможность на уровне алгоритмов работы системы.
5. Появляются дополнительные ИТ профессии. Текущие остаются, только знаний надо больше.
ChatGPT помогает работать, но никого не заменяет. Системные аналитики лучшие технические специалисты в постановке задач на разработку для ChatGPT.
Итого:
Продолжаю активно изучать и применять ИИ в работе.
Технологии меняются и улучшаются каждые 2-3 месяца, и нужно успевать учиться, так как каждая новая версия - усложнение предыдущей, вместе с приходящими улучшениями.
В ближайшее время структурирую информацию и вернусь с практически-полезными материалами.
А картинка к посту - о прекрасных рабочих буднях в больших серьезных компаниях 👇
Первый кадр:
ИИ превращает этот единственный пункт в длинное письмо, которое я могу притвориться, что написал.
Второй кадр:
ИИ делает из этого длинного письма один пункт, и я могу притвориться, что прочитал его.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24❤8👍5🤔1
Forwarded from 👩🏻💻 Подкаст Системных Аналитиков | GetAnalyst
🤖 Подкаст про ИИ + лайфхаки ChatGPT для Системных Аналитиков 🤖
В этом эпизоде подкаста вы познакомитесь с возможностями Искусственного Интеллекта ChatGPT для профессии системного аналитика, и узнаете о проблемах, которые могут быть связаны с его использованием.
1:30 - Определение Искусственного Интеллекта (ИИ) / AI (Artificial Intelligence).
6:32 - Что такое ChatGPT*, как он работает и какие задачи выполняет.
15:56 - Идеальное транскрибирование голоса в текст за счет анализа контекста Искусственным Интеллектом через мобильное приложение ChatGPT.
18:12 - Обзор карты навыков системного аналитика и применение ChatGPT как дополнительного инструмента в работе. Про сбор требований.
27:11 - Работа с бизнес-требованиями. Диаграммы BPMN (инструмент Camunda). Для презентаций рекомендуется приложение Canva*.
37:49 - Работа с функциональными и нефункциональными требованиями (упоминаемый подкаст про НФТ). Диаграммы UML (инструмент PlantUML) через ChatGPT.
41:55 - Документирование, проектирование базы данных, архитектура систем.
48:15 - Маппинг данных с помощью ChatGPT при постановке задач на интеграции и API.
49:19 - Проектирование REST API через ChatGPT.
53:23 - Тестирование, инструменты и другие навыки системного аналитика.
Пример Swagger-документации Wildberries, пример рабочего проекта с кодом.
1:01:51 - Где использовать ChatGPT. Полезен или вреден ChatGPT? На что обращать внимание. Отсылка на статью про C4 - диаграмму для архитектуры.
*P.S. Часть ссылок точно доступна только под VPN в некоторых странах.
Эпизод доступен в:
⏯ Apple Podcast
⏯ Яндекс.Музыка
⏯ YouTube
⏯ Telegram
⏯ Castbox
⏯ Spotify
Слушайте на удобных площадках, подписывайтесь и делитесь с коллегами! 💖
В этом эпизоде подкаста вы познакомитесь с возможностями Искусственного Интеллекта ChatGPT для профессии системного аналитика, и узнаете о проблемах, которые могут быть связаны с его использованием.
1:30 - Определение Искусственного Интеллекта (ИИ) / AI (Artificial Intelligence).
6:32 - Что такое ChatGPT*, как он работает и какие задачи выполняет.
15:56 - Идеальное транскрибирование голоса в текст за счет анализа контекста Искусственным Интеллектом через мобильное приложение ChatGPT.
18:12 - Обзор карты навыков системного аналитика и применение ChatGPT как дополнительного инструмента в работе. Про сбор требований.
27:11 - Работа с бизнес-требованиями. Диаграммы BPMN (инструмент Camunda). Для презентаций рекомендуется приложение Canva*.
37:49 - Работа с функциональными и нефункциональными требованиями (упоминаемый подкаст про НФТ). Диаграммы UML (инструмент PlantUML) через ChatGPT.
41:55 - Документирование, проектирование базы данных, архитектура систем.
48:15 - Маппинг данных с помощью ChatGPT при постановке задач на интеграции и API.
49:19 - Проектирование REST API через ChatGPT.
53:23 - Тестирование, инструменты и другие навыки системного аналитика.
Пример Swagger-документации Wildberries, пример рабочего проекта с кодом.
1:01:51 - Где использовать ChatGPT. Полезен или вреден ChatGPT? На что обращать внимание. Отсылка на статью про C4 - диаграмму для архитектуры.
Эпизод доступен в:
⏯ Apple Podcast
⏯ Яндекс.Музыка
⏯ YouTube
⏯ Telegram
⏯ Castbox
⏯ Spotify
Слушайте на удобных площадках, подписывайтесь и делитесь с коллегами! 💖
❤16👍11🔥5😍1
This media is not supported in your browser
VIEW IN TELEGRAM
Друзья, предлагаем подборку фильмов и сериалов про IT, чтобы вы точно проверили классно время в выходные 👌
Делитесь, что уже смотрели или планируете посмотреть😏👇
Делитесь, что уже смотрели или планируете посмотреть😏👇
👍17🔥4❤3
🔸 Как одно требование на интеграцию может превратиться в 10+ задач на разработчиков 🔸
Когда мы разрабатываем требования к интеграции систем, то важно осознавать, что на поверхности лежат далеко не все задачи, которые нужно создать и описать для разработчиков.
Можно подойти к аналитике и декомпозиции поверхностно, создать и описать следующие задачи:
1. Дизайн экрана - изменения в связи добавлением функциональности.
2. Одна задача на Backend, на разработку метода API, который будут использовать приложения.
3-5. По одной задаче на каждый фронтенд (веб- / мобильные приложения).
Но это всего лишь группы работ, но не конкретные задачи на разработчиков.
Постановок задач будет больше:
- изменения в БД,
- требования к созданию и настройке конфигурации,
- выделение микросервисов (при необходимости) и описание межсервисного взаимодействия,
и другие.
Одна маленькая интеграционная задача может легко породить десяток подзадач, над которыми будет работать вся команда.
Поэтому в какой-то момент, когда я несколько раз упустила мелкие детали в работе, я вывела стандартизацию по заведению интеграционных задач.
Этот стандартный подход позволяет учесть все отдельные постановки задач, которые нужно создать и описать для разработчиков. Его мы всегда разбираем на практике на последнем этапе практической программы Интеграции.
Хочу поделиться им с вами в следующем посте 🙂
#ИнтеграцииGA
Когда мы разрабатываем требования к интеграции систем, то важно осознавать, что на поверхности лежат далеко не все задачи, которые нужно создать и описать для разработчиков.
Можно подойти к аналитике и декомпозиции поверхностно, создать и описать следующие задачи:
1. Дизайн экрана - изменения в связи добавлением функциональности.
2. Одна задача на Backend, на разработку метода API, который будут использовать приложения.
3-5. По одной задаче на каждый фронтенд (веб- / мобильные приложения).
Но это всего лишь группы работ, но не конкретные задачи на разработчиков.
Постановок задач будет больше:
- изменения в БД,
- требования к созданию и настройке конфигурации,
- выделение микросервисов (при необходимости) и описание межсервисного взаимодействия,
и другие.
Одна маленькая интеграционная задача может легко породить десяток подзадач, над которыми будет работать вся команда.
Поэтому в какой-то момент, когда я несколько раз упустила мелкие детали в работе, я вывела стандартизацию по заведению интеграционных задач.
Этот стандартный подход позволяет учесть все отдельные постановки задач, которые нужно создать и описать для разработчиков. Его мы всегда разбираем на практике на последнем этапе практической программы Интеграции.
Хочу поделиться им с вами в следующем посте 🙂
#ИнтеграцииGA
🔥52👍9❤3🦄3
📝📌 Стандартный подход по созданию постановок задач на Интеграции 📌📝
К посту добавила схему по созданию постановок задач на Интеграции для разных разработчиков в команде + дизайнера.
Работает она не только для интеграций. И если дополнить ее ссылками на шаблоны постановок задач, то так можно создать идеальный мир перфекциониста-аналитика на работе 🤩
В зависимости от проекта она может быть урезана и требовать создания меньшего количества задач. Но если учитывать всё, с чем пришлось поработать, то именно на полный вариант я ориентируюсь, когда делаю декомпозицию (деление) требований в задачи на команду.
❗️На схеме не отражены шаги работы аналитика перед тем, как он вообще может приступить к “нарезке” задач - анализ API-документации, тестирование API в Postman или аналогичном инструменте. Это всё есть в моей статье Пошаговый план работы с задачами на интеграции.
Много важных шагов, которые мы, аналитики, делаем, чтобы интеграция была разработана и запущена в продакшн 🙌
Сохраняйте пост в избранное, и пробуйте применять у себя в текущих и будущих проектах💛
#ИнтеграцииGA
К посту добавила схему по созданию постановок задач на Интеграции для разных разработчиков в команде + дизайнера.
Работает она не только для интеграций. И если дополнить ее ссылками на шаблоны постановок задач, то так можно создать идеальный мир перфекциониста-аналитика на работе 🤩
В зависимости от проекта она может быть урезана и требовать создания меньшего количества задач. Но если учитывать всё, с чем пришлось поработать, то именно на полный вариант я ориентируюсь, когда делаю декомпозицию (деление) требований в задачи на команду.
❗️На схеме не отражены шаги работы аналитика перед тем, как он вообще может приступить к “нарезке” задач - анализ API-документации, тестирование API в Postman или аналогичном инструменте. Это всё есть в моей статье Пошаговый план работы с задачами на интеграции.
Много важных шагов, которые мы, аналитики, делаем, чтобы интеграция была разработана и запущена в продакшн 🙌
Сохраняйте пост в избранное, и пробуйте применять у себя в текущих и будущих проектах
#ИнтеграцииGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤26👍1🔥1
🤓 Я всё знаю 😞
Каждый раз, когда я приближаюсь к состоянию “я всё знаю”, это становится неприятной ситуацией, требующей срочного решения. Почему?
Это сигнал того, что я остановилась в развитии, ленюсь и больше ни к чему не стремлюсь. Знать всё просто невозможно.
В таких случаях я сознательно помещаю себя в ситуации, где мне нужно учиться, где я чувствую себя неопытной и ищущей новые знания. Это не от скуки, а из-за нежелания достигать “потолка” в своём развитии. Потолок будет там, где мы его сами поставим - это искусственное ограничение.
Если я буду думать, что уже всё знаю и пытаться развиваться дальше с этими знаниями, то у меня, скорее всего, ничего не получится, и я буду топтаться на месте.
Лучшие достижения приходят, когда выходишь за границы комфорта и преодолеваешь что-то новое. Поэтому я постоянно нахожусь в ситуациях, где много учусь и работаю, чувствуя себя новичком. Именно так я понимаю, что развиваюсь и точно знаю, что не стою на месте.
Я до сих пор учусь навыкам системного и бизнес-анализа, менеджмента и управления, спикерства и коммуникации с людьми. Книги, видео, конференции и обучения всегда дают один из двух результатов - либо я узнаю что-то новое, либо еще лучше понимаю и структурирую то, что знала ранее.
"Я ничего не знаю" - именно это состояние постоянно со мной и я поддерживаю его, чтобы идти вперед и достигать новых результатов 🙌
А на какой стороне вы?))
Ставьте реакции:
🔥 - "Я ничего не знаю"
👍 - “Я всё знаю”
Каждый раз, когда я приближаюсь к состоянию “я всё знаю”, это становится неприятной ситуацией, требующей срочного решения. Почему?
Это сигнал того, что я остановилась в развитии, ленюсь и больше ни к чему не стремлюсь. Знать всё просто невозможно.
В таких случаях я сознательно помещаю себя в ситуации, где мне нужно учиться, где я чувствую себя неопытной и ищущей новые знания. Это не от скуки, а из-за нежелания достигать “потолка” в своём развитии. Потолок будет там, где мы его сами поставим - это искусственное ограничение.
Если я буду думать, что уже всё знаю и пытаться развиваться дальше с этими знаниями, то у меня, скорее всего, ничего не получится, и я буду топтаться на месте.
Лучшие достижения приходят, когда выходишь за границы комфорта и преодолеваешь что-то новое. Поэтому я постоянно нахожусь в ситуациях, где много учусь и работаю, чувствуя себя новичком. Именно так я понимаю, что развиваюсь и точно знаю, что не стою на месте.
Я до сих пор учусь навыкам системного и бизнес-анализа, менеджмента и управления, спикерства и коммуникации с людьми. Книги, видео, конференции и обучения всегда дают один из двух результатов - либо я узнаю что-то новое, либо еще лучше понимаю и структурирую то, что знала ранее.
"Я ничего не знаю" - именно это состояние постоянно со мной и я поддерживаю его, чтобы идти вперед и достигать новых результатов 🙌
А на какой стороне вы?))
Ставьте реакции:
🔥 - "Я ничего не знаю"
👍 - “Я всё знаю”
🔥135👍10😱3🦄1
💡 Интеграции — это не магия, а навык. Технический навык системного аналитика, который открывает путь к самым интересным проектам и вакансиям.
🚀 26 июня стартует практическая программа по интеграциям от GetAnalyst. На ней мы поможем вам освоить этот востребованный навык и прокачать карьеру.
Вас ждет:
◽️ 10 живых онлайн-встреч с опытными системными аналитиками.
◽️ Работа над ОДНИМ проектом в течение всей программы.
◽️ Разбор всех этапов проектирования интеграций от А до Я на его примере.
◽️ Возможность задать вопросы и получить обратную связь от экспертов сразу.
👉 Узнать подробности о программе и записаться
🎁 При записи до 24 июня: самые выгодные предложения и дополнительное обучение по БД в подарок.
Есть вопросы или не уверены, что эта программа актуальна для вас?
Пишите @getanalyst или заполняйте анкету предзаписи на сайте. Мы свяжемся с вами и поможем оценить ваши текущие навыки и ответим на все вопросы!
🚀 26 июня стартует практическая программа по интеграциям от GetAnalyst. На ней мы поможем вам освоить этот востребованный навык и прокачать карьеру.
Вас ждет:
◽️ 10 живых онлайн-встреч с опытными системными аналитиками.
◽️ Работа над ОДНИМ проектом в течение всей программы.
◽️ Разбор всех этапов проектирования интеграций от А до Я на его примере.
◽️ Возможность задать вопросы и получить обратную связь от экспертов сразу.
👉 Узнать подробности о программе и записаться
🎁 При записи до 24 июня: самые выгодные предложения и дополнительное обучение по БД в подарок.
Есть вопросы или не уверены, что эта программа актуальна для вас?
Пишите @getanalyst или заполняйте анкету предзаписи на сайте. Мы свяжемся с вами и поможем оценить ваши текущие навыки и ответим на все вопросы!
❤6👍3👎1🔥1
📝📌 Образец по декомпозиции задач на Интеграции 📌📝
Рассказала теорию по декомпозиции задач на интеграции, теперь хочу продемонстрировать, как это работает на примере проекта #GABank - экранная форма для заполнения реквизитов на перевод юридическим лицам.
Frontend (пользовательские интерфейсы)
🟪 1. Дизайн UI/UX для web-, iOS, Android
Считаем, что подключаем интеграцию к экрану, который уже работал до доработок. То есть переводы между юрлицами уже можно делать неудобно, вводя все реквизиты вручную.
Теперь передаем дизайнеру информацию о том, что нам нужны выпадающие списки для автозаполнения остальных полей после выбора:
- ИНН + организации
- БИК + банка
Описываем возможные сценарии, когда заполнение может быть сразу всего, даже с банком. И пусть дизайнер улучшает выпадающие списки, описывает UX - переходы между полями и так далее (плохой сценарий - у нас нет дизайнера UI/UX и это делает аналитик, так бывает и это ок).
По картинке со схемой дальше идут задачи на Frontend, а по факту я сначала делаю постановки задач на Backend.
Backend (сервер-приложения, БД и др)
⬛️ 2. Изменения в БД
Банковские переводы уже работали. Поэтому я считаю, что база данных “как есть” для хранения сведений, которые будем получать из DaData, подойдёт нам и в текущем виде - уже есть таблица своих и чужих компаний, можно только отметки “синхронизировано с DaData” добавить в обе таблицы с компаниями, но смысла не вижу. Описывала БД здесь.
Хочу еще раз напомнить, что при интеграции с внешними системами может быть потребность сохранять новые данные о новых сущностях, которых раньше не было в БД. В этом случае будет задача на создание новых таблиц.
А еще может быть задача на добавление поля external_id в существующую таблицу (идентификатор записи во внешней системе), когда надо сохранять данные из внешней системы, чтобы знать источник - откуда мы это взяли и как проверить. Но у DaData нет своих id для компаний, они их не возвращают в ответе, только ИНН. Так что дорабатывать БД не надо. Ура.
#ИнтеграцииGA
Продолжение скоро 👇
Рассказала теорию по декомпозиции задач на интеграции, теперь хочу продемонстрировать, как это работает на примере проекта #GABank - экранная форма для заполнения реквизитов на перевод юридическим лицам.
Frontend (пользовательские интерфейсы)
🟪 1. Дизайн UI/UX для web-, iOS, Android
Считаем, что подключаем интеграцию к экрану, который уже работал до доработок. То есть переводы между юрлицами уже можно делать неудобно, вводя все реквизиты вручную.
Теперь передаем дизайнеру информацию о том, что нам нужны выпадающие списки для автозаполнения остальных полей после выбора:
- ИНН + организации
- БИК + банка
Описываем возможные сценарии, когда заполнение может быть сразу всего, даже с банком. И пусть дизайнер улучшает выпадающие списки, описывает UX - переходы между полями и так далее (плохой сценарий - у нас нет дизайнера UI/UX и это делает аналитик, так бывает и это ок).
По картинке со схемой дальше идут задачи на Frontend, а по факту я сначала делаю постановки задач на Backend.
Backend (сервер-приложения, БД и др)
⬛️ 2. Изменения в БД
Банковские переводы уже работали. Поэтому я считаю, что база данных “как есть” для хранения сведений, которые будем получать из DaData, подойдёт нам и в текущем виде - уже есть таблица своих и чужих компаний, можно только отметки “синхронизировано с DaData” добавить в обе таблицы с компаниями, но смысла не вижу. Описывала БД здесь.
Хочу еще раз напомнить, что при интеграции с внешними системами может быть потребность сохранять новые данные о новых сущностях, которых раньше не было в БД. В этом случае будет задача на создание новых таблиц.
А еще может быть задача на добавление поля external_id в существующую таблицу (идентификатор записи во внешней системе), когда надо сохранять данные из внешней системы, чтобы знать источник - откуда мы это взяли и как проверить. Но у DaData нет своих id для компаний, они их не возвращают в ответе, только ИНН. Так что дорабатывать БД не надо. Ура.
#ИнтеграцииGA
Продолжение скоро 👇
❤13👍4🔥4
📝📌 Образец по декомпозиции задач на Интеграции - часть 2 📌📝
⬛️ 3. Новый сервис
Для #GABank не нужен, так как решили работать в монолитной архитектуре. Но бывает, что интеграции нужно выносить в отдельные сервисы или микросервисы.
Примеры:
+ сервис уведомлений с интеграциями к системам push, sms, email;
+ сервис с однотипным набором интеграций, например для сравнения цен на отели интеграция с 10-ками систем, где есть возможность забронировать номер, у которых примерно одинаковая логика работы.
🟪 4. Настройка конфигураций
Для интеграции с DaData необходим минимум конфигураций, которые надо будет настроить в системе:
+ Сохранить базовый URL системы для выполнения запросов
(документация)
(документация)
Тестовой площадки по отдельному URL нет. Чтобы не расходовать платные запросы и делить тест и прод, то можно завести тестовую и боевую учетные записи.
Для разных API DaData сохраняется одинаковый адрес:
Его можно внести в конфигурацию. Осторожно учитывать версию API. То, как внешняя система работает с версионированием методов может повлиять на то, можем внести версию в постоянные конфигурации или нет.
+ Сохранить в хранилище ключей или в конфигурации API-ключи для продакшн и для теста.
+ Гибкие лимиты тут не нужны, но можно сохранить, что на одного пользователя не более 100 запросов в сутки. И в целом, при проработке алгоритма интеграции, стремиться к оптимизации числа запросов.
⬛️ 5.1. Разработка механизма авторизации
Для DaData механизм авторизации заключается в подстановке постоянного API-ключа из хранилища ключей в Header запроса “Authorization”.
#ИнтеграцииGA
Далее про авторизацию, доработки интеграционных API-методов и Frontend 👇👇👇
⬛️ 3. Новый сервис
Для #GABank не нужен, так как решили работать в монолитной архитектуре. Но бывает, что интеграции нужно выносить в отдельные сервисы или микросервисы.
Примеры:
+ сервис уведомлений с интеграциями к системам push, sms, email;
+ сервис с однотипным набором интеграций, например для сравнения цен на отели интеграция с 10-ками систем, где есть возможность забронировать номер, у которых примерно одинаковая логика работы.
🟪 4. Настройка конфигураций
Для интеграции с DaData необходим минимум конфигураций, которые надо будет настроить в системе:
+ Сохранить базовый URL системы для выполнения запросов
POST http://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party
(документация)
POST http://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/bank
(документация)
Тестовой площадки по отдельному URL нет. Чтобы не расходовать платные запросы и делить тест и прод, то можно завести тестовую и боевую учетные записи.
Для разных API DaData сохраняется одинаковый адрес:
http://suggestions.dadata.ru/suggestions/api/4_1/rs
Его можно внести в конфигурацию. Осторожно учитывать версию API. То, как внешняя система работает с версионированием методов может повлиять на то, можем внести версию в постоянные конфигурации или нет.
+ Сохранить в хранилище ключей или в конфигурации API-ключи для продакшн и для теста.
+ Гибкие лимиты тут не нужны, но можно сохранить, что на одного пользователя не более 100 запросов в сутки. И в целом, при проработке алгоритма интеграции, стремиться к оптимизации числа запросов.
⬛️ 5.1. Разработка механизма авторизации
Для DaData механизм авторизации заключается в подстановке постоянного API-ключа из хранилища ключей в Header запроса “Authorization”.
#ИнтеграцииGA
Далее про авторизацию, доработки интеграционных API-методов и Frontend 👇👇👇
👍7🔥1
📝📌 Образец по декомпозиции задач на Интеграции - часть 3 📌📝
⬛️ 5.1. Авторизация - продолжение👇
Нужно подготовить отдельную статью на разработчика, с этим описанием: как проходит авторизация запросов в DaData.
А реализацию он может сделать вместе с реализацией первого интеграционного API-метода (п. 6). Мельчить задачи не нужно.
А для OAuth 2.0 у внешней системы, например, всё сложнее))
⬛️ 5.2. Разработка механизма ре-авторизации (повторной авторизации)
Для DaData это не актуально, так как API-ключ постоянный.
Это, кстати, причина, почему мы не можем напрямую обращаться с frontend в DaData, т.к. этот секретный API-ключ могут отследить через консоль, украсть, и начать расходовать наши лимиты платных запросов((
🟪🟪 6. Интеграционные API-методы
Вызов API будет в трех местах:
6.1. Вызов интеграционного метода REST API GABank на получение организаций по ИНН. После вызова метода необходимо будет проверить внутреннюю базу на наличие организации по ИНН + добавить к ней ответы из внешней системы DaData.
(документация)
6.2. Вызов REST API GABank на получение банков по БИК. Как в п.1, но под капотом вызов другого API-метода внешней системы.
(документация)
6.3. Вызов внутреннего метода REST API GABank на осуществление перевода между юрлицами одного или разных банков. Метод также интеграционный, отправляет операцию в какую-нибудь очередь или брокер на обработку. Но в его детали мы пока не погружаемся.
Возвращаемся к Frontend
🟪🟪🟪 7. Задача на доработку web-, iOS, Android
Нужно поменять дизайн экрана и его поведение при вводе ИНН + БИК на основе ранее созданных макетов UI/UX (п.1) и подключить интеграционные API-методы (п.6).
Готово!
Получилось 7 полноценных задач для одного простого требования.
Такие вот интеграции: “приключение на час”, которое оборачивается в кучу исследований от аналитика и большие работы со стороны разработки 🙌
#ИнтеграцииGA
⬛️ 5.1. Авторизация - продолжение👇
Нужно подготовить отдельную статью на разработчика, с этим описанием: как проходит авторизация запросов в DaData.
А реализацию он может сделать вместе с реализацией первого интеграционного API-метода (п. 6). Мельчить задачи не нужно.
А для OAuth 2.0 у внешней системы, например, всё сложнее))
⬛️ 5.2. Разработка механизма ре-авторизации (повторной авторизации)
Для DaData это не актуально, так как API-ключ постоянный.
Это, кстати, причина, почему мы не можем напрямую обращаться с frontend в DaData, т.к. этот секретный API-ключ могут отследить через консоль, украсть, и начать расходовать наши лимиты платных запросов((
🟪🟪 6. Интеграционные API-методы
Вызов API будет в трех местах:
6.1. Вызов интеграционного метода REST API GABank на получение организаций по ИНН. После вызова метода необходимо будет проверить внутреннюю базу на наличие организации по ИНН + добавить к ней ответы из внешней системы DaData.
POST http://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party
(документация)
6.2. Вызов REST API GABank на получение банков по БИК. Как в п.1, но под капотом вызов другого API-метода внешней системы.
POST http://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/bank
(документация)
6.3. Вызов внутреннего метода REST API GABank на осуществление перевода между юрлицами одного или разных банков. Метод также интеграционный, отправляет операцию в какую-нибудь очередь или брокер на обработку. Но в его детали мы пока не погружаемся.
Возвращаемся к Frontend
🟪🟪🟪 7. Задача на доработку web-, iOS, Android
Нужно поменять дизайн экрана и его поведение при вводе ИНН + БИК на основе ранее созданных макетов UI/UX (п.1) и подключить интеграционные API-методы (п.6).
Готово!
Получилось 7 полноценных задач для одного простого требования.
Такие вот интеграции: “приключение на час”, которое оборачивается в кучу исследований от аналитика и большие работы со стороны разработки 🙌
#ИнтеграцииGA
👍16❤1🔥1
🧡 Гайд по проверке API через Postman 🧡
Один из важных этапов работы с интеграцией - разобраться как работает API внешней системы и убедиться в том, что документация к нему соответствует реальности.
Для этого нужно:
1. Как только узнали, что вы получили задачу на интеграцию по API, запросить доступы к тестовой и продуктовой площадке, либо найти способ получить их самостоятельно. Иногда это может занимать недели из-за необходимости подписывать договора.
Для #GABank тестовый и боевой доступы к DaData не разделяются. При желании можно создать тестовую учетную запись в DaData и продуктовую.
2. Прочитать документацию "по диагонали" и найти важную информацию:
- Авторизация и аутентификация.
- Рекомендации по использованию API. Примеры сценариев использования. Это не всегда есть в API-документации. Но если есть, то считайте, что задача почти готова.
- Общие требования к обработке ошибок. Коды ответов.
- Список методов, необходимых для реализации интеграционных сценариев. Нужно понять, что методов для реализации бизнес-процессов в нашей системе достаточно.
Для интеграции с DaData все это описано в рамках отдельных документов (веб-страниц) по каждому методу.
🔗 Метод поиска компании по ИНН
🔗 Поиск банка по БИК
3. Протестировать API и понять как он работает. В основном для этого используют инструмент Postman. Для SOAP API - инструмент SOAP UI.
Для интеграции с DaData нам потребуется Postman.
🧡 Ссылка на гайд по тестированию одного из методов API DaData в Postman 🧡
Предлагаю посвятить сегодня 20-30 минут (или даже меньше), чтобы разобраться с двумя нужными нам методами API DaData и получить ваш опыт работы с инструментом Postman 😉🧡
#ИнтеграцииGA
Один из важных этапов работы с интеграцией - разобраться как работает API внешней системы и убедиться в том, что документация к нему соответствует реальности.
Для этого нужно:
1. Как только узнали, что вы получили задачу на интеграцию по API, запросить доступы к тестовой и продуктовой площадке, либо найти способ получить их самостоятельно. Иногда это может занимать недели из-за необходимости подписывать договора.
Для #GABank тестовый и боевой доступы к DaData не разделяются. При желании можно создать тестовую учетную запись в DaData и продуктовую.
2. Прочитать документацию "по диагонали" и найти важную информацию:
- Авторизация и аутентификация.
- Рекомендации по использованию API. Примеры сценариев использования. Это не всегда есть в API-документации. Но если есть, то считайте, что задача почти готова.
- Общие требования к обработке ошибок. Коды ответов.
- Список методов, необходимых для реализации интеграционных сценариев. Нужно понять, что методов для реализации бизнес-процессов в нашей системе достаточно.
Для интеграции с DaData все это описано в рамках отдельных документов (веб-страниц) по каждому методу.
🔗 Метод поиска компании по ИНН
🔗 Поиск банка по БИК
3. Протестировать API и понять как он работает. В основном для этого используют инструмент Postman. Для SOAP API - инструмент SOAP UI.
Для интеграции с DaData нам потребуется Postman.
🧡 Ссылка на гайд по тестированию одного из методов API DaData в Postman 🧡
Предлагаю посвятить сегодня 20-30 минут (или даже меньше), чтобы разобраться с двумя нужными нам методами API DaData и получить ваш опыт работы с инструментом Postman 😉🧡
#ИнтеграцииGA
❤21👍11🔥8