GetAnalyst - Навыки • Системный анализ • Бизнес-анализ
19.6K subscribers
2.1K photos
75 videos
207 files
1.2K links
Разбор задач на проектирование систем 🚀 Канал для системных аналитиков, бизнес-аналитиков, тестировщиков и менеджеров проектов

Админ @getanalyst
Сайт https://getanalyst.ru
Чат t.me/getanalystchat
Начинающим в IT @getanalyststart

РКН №5013005196
Download Telegram
❗️Уже через 3 часа❗️

Практический вебинар с Екатериной Ананьевой!

📹 Про REST API за 2 часа: с нуля до Swagger-документации
19:00 - 21:00 Мск

Ссылку на прямой эфир пришлем в канал за 15 минут до начала.
😂👍👍❤️👌😅😊😊😍😘

❗️До начала 15 минут❗️

📹 Про REST API за 2 часа: с нуля до Swagger-документации

Переходите по ссылке: https://pruffme.com/webinar/?id=cfbaba2b3142b38994e60652dbe9760d и начинаем!
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥27🥰26❤‍🔥8👏7
Доброго утра и дня! Что вчера было? 🔥 3.5 часа практики!

Сначала я дала вводные по проекту и рассказала базовую теорию по REST API. а потом!!! 9 практических заданий, которые вы выполнили, и много ваших крутых вопросов!

Разобрали:
👉 Что из себя представляет REST API и структуру метода.
👉 По каждому пункту из сруктуры метода разрабатывали и проходили квизы!
👉 Разбирались когда POST, когда PUT, и в чем разница.
👉 SOAP vs REST.
👉 Связь БД, UI и API.
👉 Посмотрели как делать JSON-ы в http://jsoneditoronline.com.
👉 Работали со Swagger-документацией и наблюдали с какими первичными проблемами можно встретиться.
👉 И много других деталей!

Дополнительные инструменты для работы с JSON:
👉 notepad++
👉 https://www.jetbrains.com/idea/

На выходе с практикума у ребят остались:
🔑 Инструкция по наполнению корпоративного гайда по дизайну REST API.
🔑 В течение этой недели пришлю вам исходники Swagger-документации, над которой работали!
🔑 Знания по REST API: как создавать методы с нуля.
🔑 Опыт!

В конце я рассказала о старте практической программы REST API с 31 января, и ближайшую неделю будет открыта запись в нашу команду системных аналитиков!

Вау? Вау! Вы лучшие! Спасибо за активность и вопросы! 🔥❤️


P.S. Регистрация на повтор будет открыта завтра, т.к. 3.5 часа практики опять. Если я разбираю тему, то копаю и делюсь с вами всеми важными деталями. Это важно 🙌

P.S.S. Мы побили рекорд по количеству участников. Спасибо за такой старт 2024! ❤️
🔥417🥰3👍2👎1
В Postman есть большая коллекция открытой API-документации, с которой можно самостоятельно пробовать разобраться с REST API и особенностями работы с этим ключевым инструментом для аналитиков 👀

Вот несколько полезных ссылок:
🔗 Коллекция открытых API

ChatGPT 3 - API
🔗 Open AI GPT3
🔗 Документация

Что с этим делать?
✔️ Смотреть как настраивать запросы postman, в частности аналитикам часто интересны headers, authorization
✔️ Пробовать тестировать открытый API
✔️ Изучать подходы к проектированию API от разных компаний, смотреть отличия
✔️ Смотреть подходы разных компаний к документированию API в Postman

Пересылайте себе в личные сообщения, чтобы сохранить ссылки и попробовать возможности Postman на максимум! 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1674👍1
😂😘 ПОВТОР ВЕБИНАРА 😂😘

📚 Про REST API за 2 3.5 часа: с нуля до Swagger-документации
📅 26, 25 и 27 ЯНВАРЯ
🔗 ЗАРЕГИСТРИРОВАТЬСЯ

Очень структурированно и подробно разобрали всю структуру методов REST API! Это огромный объем проделанной мной работы по подготовке и результат....

Коллеги поделились впечатлениями после вебинара 🙂


Егор
Очень понравился вебинар! Особенно хотелось бы отметить практико-ориентированность.


Светлана
Екатерина, очень живо и полезно! Хожу к Вам на все открытые вебинары, благодаря Вашему заряду, решилась из саппорта перейти в аналитику. Очень хочу учиться у Вас.


Евгения
Спасибо большое за вебинар! Дорогого стоит для тех, кто приступает к rest api. Очень доступно и понятно, последовательно


Ирина
Крутейший вебинар, большое спасибо! Огромный кусок информации, которого мне не хватило на пройденных мной курсах. Великолепная подача материала, приятно смотреть и слушать, очень понравилось. Обязательно приду еще на вебинары, даже курс захотелось купить)


Самое время узнать почему такая обратная связь! 😉

📌 ТОЛЬКО 3 ДНЯ!

Это важная тема! Запланируйте время, чтобы не пропустить 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👌53❤‍🔥2
❤️💛💙

Хороших выходных!

#GAfrindlyreminder
Please open Telegram to view this post
VIEW IN TELEGRAM
51💯8👍3😢3
Часовые пояса - это челлендж. Для вас, и для меня. Почти с каждым у нас разница минимум 10 часов, а то и больше. Поэтому эфиры начинаются в 19 Мск (8 утра по моему времени), чтобы я была с вами с зарядом энегнии, а не угасающим огоньком.

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

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



Во время нашего последнего вебинара я обещала вам специальное предложение по программе Дизайн REST API. И вот оно:

🎁 Промокод: REST240124
Активен только 27 января с 0:00 до 23:59 Мск


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



Спасибо, что вы часть GetAnalyst! 🙌

P.S. Регистрация на повтор вебинара про REST API и Swagger☝️
15🔥7👍4
🤖 ChatGPT для проектирования REST API 🤖

Год назад появился искусственный интеллект — ChatGPT. Созданный на основе знаний всего интернета, он становится помощником и для системных аналитиков, в том числе в проектировании REST API.

Чтобы работать с ним и иметь качественные результаты, важно уметь правильно задать контекст и знать последовательность команд для работы над задачей. Тогда он сможет выполнить за вас часть работы.


Пример команды:

Работай как системный аналитик.
Проект - [Название проекта].
[Описание ключевых данных о проекте, важных для решения задачи].
Спроектируй метод REST API: [Название метода].
1. Сделай описание метода - что это и для чего.
2. Опиши логику его работы - алгоритм.
3. Покажи пример запроса и ответа. Ответы нужны как успешный, так и обработка ошибок.


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

Кроме того, ChatGPT не знает уникальной информации о вашей компании или конкретных проектах. Так что, пока он помогает с общими задачами, все тонкости проектирования API вам придется учитывать самостоятельно, основываясь на вашем опыте и знаниях. Иначе есть риск получить «кривые» решения.

В ходе работы я собираю и сохраняю различные команды для работы с ChatGPT. Это позволяет мне максимально эффективно использовать его возможности.

Однако ключевым моментом является способность взаимодействовать с ним как с дополнительным инструментом в работе системного аналитика, и корректировать его ответы в соответствии с реальным миром и вашими задачами.
20🤔5👍1👎1
🛡️ Безопасность в REST API: 3 способа авторизации 🛡️

Безопасность обмена данными уже давно играет первостепенную роль в проектировании приложений. В случае с проектированием REST API от выбора способа авторизации зависит конфиденциальность данных.

Есть три основных способа авторизации:

⚪️ Basic Authentication (логин + пароль):
Простейший метод, при котором логин и пароль отправляются в заголовке запроса в формате Base64. Хоть это и базовый подход, без дополнительного SSL/TLS он является уязвимым.
Пример: МойСклад

⚪️ API-ключи (токены):
Эти уникальные идентификаторы позволяют приложениям получать доступ к API. Они обычно отправляются в заголовке запроса. Главный минус? Если ключ утек, его могут использовать злоумышленники. Хотя от этого можно защититься.
Пример: МойСклад (альтернативный способ к Basic)

⚪️ OAuth:
Самый современный и безопасный метод. OAuth позволяет пользователям давать приложениям ограниченный доступ к своим ресурсам без раскрытия своих учетных данных. Он сложен в понимании, если просто читать про него теорию. Но попробовав применить его на практике, понимание приходит!
Пример: vk


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


🔐 Помните, выбор метода авторизации должен соответствовать требованиям безопасности вашего приложения. В ваших руках безопасность пользовательских данных! Как системные аналитики вы влияете на решение вместе со специалистами по безопасности, архитекторами и backend-разработчиками.
👍167👏1
🧑‍💻 REST API: подборка вопросов с собеседований на системного аналитика🧑‍💻

▫️Расскажите о вашем опыте работы с RESTful API. С какими проблемами сталкивались и как решали? Приведите примеры.

▫️ Какие методы HTTP вы знаете?

▫️ В чем разница между POST и PUT?

▫️ В чем разница между PATCH и PUT?

▫️ Опишите стандартный процесс проектирования REST API на вашем последнем месте работы.

▫️ Как вы обеспечиваете безопасность API? Знакомы ли вы с OAuth?

▫️ Что такое идемпотентность и какие HTTP методы являются идемпотентными?

▫️ Как вы документируете API? Использовали ли вы инструменты автоматической генерации документации? Какие?

▫️ Как реализовать обработку большого объема данных через REST API?

▫️ Как проектировать асинхронные запросы?

▫️ Можно ли передавать файлы через REST API? Как?



📌 Как преподносить навык REST API в резюме:

▫️Конкретизируйте ваш опыт: Не просто укажите "Знание REST API", но и опишите, как вы его использовали — например, "Разработка и документирование REST API для интеграции между подсистемами проекта / обеспечания работы мобильных приложений".

▫️Проекты: Если у вас были крупные проекты, связанные с интеграциями и REST API, укажите их. Это даст работодателю понять глубину вашего опыта.

▫️Инструменты: Упомяните, с какими инструментами вы работали (например, Postman, Swagger).



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

Сохраняйте подборку вопросов, смотрите одно из наших видео про асинхронные запросы (звук плохой - суть важная).

Разбор ответов и опыт по этим вопросам есть в практической программе - Дизайн REST API. Старт уже 31 января!


Делитесь в комментариях своим опытом собеседований и интересными вопросами по API 👍
🔥136👍5
Media is too big
VIEW IN TELEGRAM
🟢 Swagger-коллекция с практического вебинара 🟢

В конце практического вебинара ловили ошибки в Swagger и не удалось до конца показать вам как создать полную коллекцию в Swagger и поделиться ей 🥲


Продолжила проект. Делюсь результататами и исходниками:

1. Мы описали JSON объекта "продукт" и посмотрели крутой инструмент для дизайна объектов JSON - JSON Editor Online. Файл JSON, который я экспортировала из своего редактора и который вы можете загрузить в свой редактор в следующем сообщении 👇

2. Мы создали Swagger-проект и получилось показать вам основные сложности работы с его кодом - спецификация OpenAPI. (Отступы! ☝️) Чтобы вы посмотрели исходный код, который должен получиться, я выгрузила для вас исходник YAML, и показала на видео как загрузить его в ваш Swagger.
Исходник в следующем сообщении 👇

3. По этой ссылке доступна APi-документация в Swagger, полученная для нашего примера JSON-объекта "продукт". Созданы два метода POST и GET.


На видео еще раз показала соответствие OpenAPI и соответствующих фрагметов документации. Это основы работы со Swagger.

Что еще важно попробовать для освоения Swagger:
+ Вложенные объеты JSON.
+ Массивы.
+ Указатели на объекты в URL-запросов ( {productId} и подобные).
+ Разные методы.


Самостоятельная работа:
В качестве закрепления практики с практического вебинара опишите в документации пример метода PATCH для нашего проекта G-Food, который обсуждали в чате! 😉 Дополните мой код и посмотрите что у вас получится!
8🔥7👍2
Невозможно не поделиться ещё одной историей нашей студентки Маргариты.

Маргарита работает в Сбербанке системным аналитиком уже 3-й год, но профильное образование имеет по бизнес-анализу.Необходимо было подтянуть знания по REST API.

Далее со слов Маргариты ⤵️

«На курсе получила всё, на что рассчитывала!

Программа ёмкая с большим количеством теоретического материала. Мы его закрепляли на практике на вебинарах.

Освоила Postman — очень классный, полезный инструмент, который обязательно буду использовать.»


Как нередко случается у студентов GetAnalyst, Маргарита почувствовала больше уверенности в себе, проявила знания в работе и её перевели в новую команду на проекте 🔥🔥🔥


От себя хочу дополнить:
▪️ Каждую встречу мы включаем в рабочий процесс каждого участника, чтобы он смог получить максимальный результат.
▪️ Радуемся, что среди бытовых дел и работы вы находите силы прийти на вебинары.
▪️ После каждого отзыва гордимся, как вы раскрываетесь как специалисты, двигаетесь к целям и достигаете больше, чем планировали 🚀


Я счастлива, что могу собрать таких людей вокруг себя.
Спасибо, что выбираете GetAnalyst

#студентыGetAnalyst
15👏4👍3🔥3🎉2😴1
При проектировании REST API есть два места, на которые мы активно смотрим:

👉 Потребности клиента.
Это дизайн экранов или требовани от внешних систем, котрые будут подключаться к нам, чтобы получать данные.

Отсюда мы получаем информацию ЧТО нам нужно вернуть в ответе API или записать в БД.


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

На основе модели БД мы получаем ориентир - В КАКОЙ СТРУКТУРЕ данные могут быть представлены в формате JSON.


Поэтому понимание БД проекта важно перед началом работы с дизайном методов REST API.

А подробнее про то, как строить JSON-структуры на основе БД рассказыаю здесь 🔗
15👍6🔥4
Media is too big
VIEW IN TELEGRAM
Типичное демо приложения заказчику. Багов точно нет, всё по плану 👌
🤣76💯5🔥4😁3
Проектируем БД для PostgreSQL 🚀

Продолжим историю с проектом G-Food по учету калорий, на котором разбирали методы REST API. Хочу затронуть тему проектирования БД и показать, как понимание БД помогает в создании JSON-объектов.

Базовые определения, важные для БД:

🔺 Сущность
Любой реальный или абстрактный объект этого мира, у которого есть набор характеристик.

Примеры:
- стол (имеет цвет, высоту, длину, ширину, материал, изготовителя),
- компьютер (имеет цвет, производителя, диагональ экрана, ОС и т.д.),
- продукт (имеет название, калории, белки, жиры, углеводы, описание, размеры порций - в контексте нашего проекта G-Food).




🔺 Свойство / Атрибут / Параметр / Поле
Характеристики сущности.

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

В примере выше у меня для сущности “Стол” ошибка, если я проектирую Интернет-магазин. Нет цены в характеристиках (свойствах сущности).


🔺 Объект
Сущность с конкретными характеристиками.

Примеры для сущности "Продукт":
- Овсяные хлопья, калории = 364, Б=12, Ж=6, У=61, Описание = Еда на завтрак, Размеры порций = [45 г, 60 г, 100 г],
- Овсяные хлопья, калории = 364, Б=12, Ж=6, У=61, Описание = Еда на завтрак - Геркулес традиционный, Размеры порций = [30 г, 60 г, 100 г],
- Банан, калории = 96, Б=1, Ж=0.5, У=21, Описание = Желтый фрукт, Размеры порций = [75 г, 150 г],
и т.д.


Объекты - это то, что мы можем увидеть, измерить, пощупать, познать. Воспринимайте это так. И помните, что объеты бывают не только физические. Например - сериал или файл в компьютере.



Разница между сущностью и объектом:
Сущность - обобщение группы объектов с одинаковым набором характеристик, которые будут храниться в будущей системе.
Объект - сущность с конкретными характеристиками.


Эти 3 определения важно знать, чтобы:
✔️ общаться с разработчиками,
✔️ определять потоки данных из бизнес-процессов, не теряя важные требования,
✔️ проектировать БД.
22🔥8👍5🥰1
Чтобы начать работу с проектированием БД, необходимо определить сущности. Это делается в процессе сбора и анализа требований.

Приложение для учета калорий "G-Food" включает в себя несколько ключевых сущностей:

🔸 Пользователь (User): Эта сущность содержит информацию о пользователях приложения. Атрибуты могут включать имя пользователя, электронную почту, пароль, возраст, пол, вес, рост, уровень активности и желаемую цель (например, похудение, поддержание веса, набор массы).

🔸 Продукт питания (Food Item): Здесь хранится информация о различных продуктах питания. Атрибуты могут включать название продукта, количество калорий на 100 грамм/единицу продукта, белки, жиры, углеводы, витамины, минералы и т.д.

🔸 Прием пищи (Meal Entry): Связывает пользователей и продукты питания. В каждой записи может содержаться информация о конкретном количестве употребленного продукта, времени приема пищи и т.д.

🔸 Физическая активность (Physical Activity): В этой сущности могут храниться данные о физической активности пользователя, включая тип активности (бег, ходьба, велоспорт и т.д.), продолжительность и приблизительное количество сожженных калорий.

Эти сущности могут быть связаны друг с другом. Например, каждый "Прием пищи" будет связан с "Пользователем". "Физическая активность" также будет связана с "Пользователем" и может влиять на дневное количество калорий.

Эта информация о сущностях G-Food потребуется для создания БД PostgreSQL 🙌
👍163
📚 3 последовательных уровня проектирования БД и зоны ответственности - самое важное 📚

🗝 Концептуальный - БА, СА
+ отражает только сущности и связи между ними, их кратности,
++ поверхностный,
++ используется редко,
++ не связан с СУБД (у нас PostgreSQL).

🗝 Логический - БА, СА
+ отражает сущности и связи между ними, их кратности,
+ показывает свойства каждой сущности,
+ в свойствах выделены ключи: первичные и внешние,
+ на этом уровне рекомендуется убрать сложные связи между сущностями (многие-ко-многим),
+ названия полей и таблиц могут быть на русском,
++ детальное проектирование,
++ используется часто,
++ не связан с СУБД.

🗝 Физический - СА, разработчики, архитекторы
+ отражает сущности и связи между ними, их кратности,
+ показывает свойства каждой сущности,
+ в свойствах выделены ключи: первичные и внешние,
+ на этом уровне НУЖНО убрать сложные связи между сущностями (многие-ко-многим),
+ названия полей и таблиц ЛУЧШЕ НА АНГЛИЙСКОМ,
+ включает типы данных,
+ есть информация об уникальности, обязательности, индексах (для оптимизации запросов),
++ детальное проектирование,
++ используется часто,
++ связан с СУБД (у нас PostgreSQL).


Из всех трех уровней нам наиболее интересен физический для работы с моделированием под PostgreSQL. Именно он отражает реальную модель БД.
14🔥8👍3