Привет-привет! Продолжим работу над проектом с автосервисом 🚘
Для реализации функциональности веб-приложений мы будем реализовывать REST API. Он нужен для обмена данными с сервером.
Напоминание:
Часть клиента - экранные формы для пользователей.
Часть сервера - база данных и методы API. Базу данных мы уже делали.
REST API (Representational State Transfer) - это архитектурный стиль проектирования. Он использует протокол HTTP для общения между клиентом и сервером.
⚠️ Важный момент: REST - именно стиль, а протокол - HTTP.
Когда мы работаем над функциональными ребованиями, то часто применяем CRUD-модель, чтобы описать всю функциональность для каждой сущности в системе. CRUD представляет собой четыре основных функции, которые напрямую связаны с REST API:
1. CREATE (Создать):
Это процесс создания новой записи в системе.
REST API: метод POST.
Пример: когда владелец автомобиля создает заявку на обслуживание авто на сайте, сайт может отправить POST-запрос на сервер автосервиса для создания новой записи.
2. READ (Прочитать):
Это операция получения или чтения данных из системы.
REST API: метод GET.
Пример, когда владелец автомобиля хочет узнать статус ремонта своего автомобиля по уникальному номеру заявки на сайте, то сайт может отправить GET-запрос на сервер автосервиса с этого номера, чтобы получить ее статус.
3. UPDATE (Обновить):
Это операция обновления существующих данных в системе.
REST API: метод PUT или PATCH.
Пример: когда владелец автомобиля хочет изменить контактные данные или информацию об автомобиле, сайт может отправить PUT или PATCH запрос на сервер автосервиса.
4. DELETE (Удалить):
Это процесс удаления данных из системы.
REST API: метода DELETE.
Пример: когда владелец автомобиля хочет удалить свою заявку, чтобы удалить данные из БД автосервиса, сайт может отправить DELETE-запрос на сервер.
Важно помнить, что конкретное использование этих методов REST API может отличаться в зависимости от специфики API или системы. Даже POST иногда нужно использовать для получения данных 💻
Для реализации функциональности веб-приложений мы будем реализовывать REST API. Он нужен для обмена данными с сервером.
Напоминание:
Часть клиента - экранные формы для пользователей.
Часть сервера - база данных и методы API. Базу данных мы уже делали.
REST API (Representational State Transfer) - это архитектурный стиль проектирования. Он использует протокол HTTP для общения между клиентом и сервером.
⚠️ Важный момент: REST - именно стиль, а протокол - HTTP.
Когда мы работаем над функциональными ребованиями, то часто применяем CRUD-модель, чтобы описать всю функциональность для каждой сущности в системе. CRUD представляет собой четыре основных функции, которые напрямую связаны с REST API:
1. CREATE (Создать):
Это процесс создания новой записи в системе.
REST API: метод POST.
Пример: когда владелец автомобиля создает заявку на обслуживание авто на сайте, сайт может отправить POST-запрос на сервер автосервиса для создания новой записи.
2. READ (Прочитать):
Это операция получения или чтения данных из системы.
REST API: метод GET.
Пример, когда владелец автомобиля хочет узнать статус ремонта своего автомобиля по уникальному номеру заявки на сайте, то сайт может отправить GET-запрос на сервер автосервиса с этого номера, чтобы получить ее статус.
3. UPDATE (Обновить):
Это операция обновления существующих данных в системе.
REST API: метод PUT или PATCH.
Пример: когда владелец автомобиля хочет изменить контактные данные или информацию об автомобиле, сайт может отправить PUT или PATCH запрос на сервер автосервиса.
4. DELETE (Удалить):
Это процесс удаления данных из системы.
REST API: метода DELETE.
Пример: когда владелец автомобиля хочет удалить свою заявку, чтобы удалить данные из БД автосервиса, сайт может отправить DELETE-запрос на сервер.
Важно помнить, что конкретное использование этих методов REST API может отличаться в зависимости от специфики API или системы. Даже POST иногда нужно использовать для получения данных 💻
👍13🔥6❤1
Время квиза! Какой метод используется для подтверждения заявки на обслуживание менеджером?
Anonymous Quiz
45%
POST
16%
GET
38%
PATCH
1%
DELETE
Какой метод используется для отображения списка заявок клиентов на экране у менеджера?
Anonymous Quiz
8%
POST
89%
GET
2%
PUT
1%
PATCH
Какой метод используется для просмотра деталей существующей заявки менеджером?
Anonymous Quiz
8%
POST
85%
GET
4%
PUT
2%
PATCH
Какой HTTP метод используется для отмены заявки на обслуживание?
Anonymous Quiz
8%
POST
24%
PATCH
27%
DELETE
41%
PATCH и DELETE
Какой метод используется для добавления автомобиля к существующему клиенту?
Anonymous Quiz
28%
POST, PATCH
22%
POST, PUT
37%
POST, PATCH, PUT
14%
POST
❤7
Дизайн REST API, как и дизайн пользовательского интерфейса UI: война за цвет кнопки будет бесконечна, если не ввести хотя бы минимальные правила по работе дизайнера 😄
Представьте, что в проект пришел дизайнер и ему задачу: "Сделай дизайн экрана размещения заявки для приложения менеджера".
При этом:
1. Не дали гайдлайн - набор правил разработки дизайна (лого, цвета, шрифты, размеры, вид и цвет кнопок, от чего зависит цвет кнопок...)
2. Не показали остальные экраны работающего приложения.
3. И не рассказали про адаптивную верстку, чтобы не только под компьютер, но и под мобильные устройства все было хорошо.
Без этих пунктов будет утерян контекст задачи дизайнера UI.
Без него он может сделать свою работу в соответствии с ожиданиями конечных пользователей.
Возможно дизайнер даже даст крутое решение. Но скорее всего оно не впишется в систему, т.к. нет контекста.
🙈 Дизайнер не может решать свою задачу в отсутсвии контекста: ему нужно увидеть хотя бы часть системы или гайдлайны, если проект с нуля, чтобы получить решение, которое будет гармонично вписываться в систему.
В работе системного аналитика и разработчиков так же -
❌ если гайдлайна - стандарта по дизайну методов REST API,
❌ или примера рабочих методов API в системе,
❌ нет понимания, как будет работать логика метода,
то выбрать ответ квиза становится затруднительно.
Полагаю, что меня сейчас поняли опытные в REST API аналитики.
А для тех, у кого пока мало опыта, квиз мог показаться совсем элементарным, с учетом поста перед ним 🙃
Много комментариев накопилось к заданиям. И это круто! Разброр каждого вопроса будет 👌
Представьте, что в проект пришел дизайнер и ему задачу: "Сделай дизайн экрана размещения заявки для приложения менеджера".
При этом:
1. Не дали гайдлайн - набор правил разработки дизайна (лого, цвета, шрифты, размеры, вид и цвет кнопок, от чего зависит цвет кнопок...)
2. Не показали остальные экраны работающего приложения.
3. И не рассказали про адаптивную верстку, чтобы не только под компьютер, но и под мобильные устройства все было хорошо.
Без этих пунктов будет утерян контекст задачи дизайнера UI.
Без него он может сделать свою работу в соответствии с ожиданиями конечных пользователей.
Возможно дизайнер даже даст крутое решение. Но скорее всего оно не впишется в систему, т.к. нет контекста.
🙈 Дизайнер не может решать свою задачу в отсутсвии контекста: ему нужно увидеть хотя бы часть системы или гайдлайны, если проект с нуля, чтобы получить решение, которое будет гармонично вписываться в систему.
В работе системного аналитика и разработчиков так же -
❌ если гайдлайна - стандарта по дизайну методов REST API,
❌ или примера рабочих методов API в системе,
❌ нет понимания, как будет работать логика метода,
то выбрать ответ квиза становится затруднительно.
Полагаю, что меня сейчас поняли опытные в REST API аналитики.
А для тех, у кого пока мало опыта, квиз мог показаться совсем элементарным, с учетом поста перед ним 🙃
Много комментариев накопилось к заданиям. И это круто! Разброр каждого вопроса будет 👌
❤🔥6🔥3👍2👀2
В комментариях Алексей объяснил, почему логичным выглядит именно PATCH:
PATСН выглядит логичным, если на самом деле имеется в виду изменение статуса существующей заявки.
------
Прилетает запрос PATCH на endpoint вида
PATCH /api/v1/orders/{orderId}
В теле запроса идет JSON в духе
{ "orderStatus": "accepted" }.
В ответ на запрос возвращаем 200 OK с JSON с полным набором ключей и значений.
------
Почти полностью согласна с Алексеем, который написал в комментариях пояснение:
------
Прилетает запрос PATCH на endpoint вида
PATCH /api/v1/order/{orderId}/confirm
или
PATCH /api/v1/order/{orderId}/changeStatus
или
PATCH /api/v1/order/{orderId}/changeStatus
В тело JSON менеджер добавляет параметры заявки, которые мог уточнить у клиента автосервиса по телефону, в процессе разговора - комментарий о странном звуке двигателя, добавить гос. номер машины, поменять время записи и другие пожелания.
Возможно частичное или полное изменение заявки после звонка клиенту.
В ответ на запрос возвращаем 200 OK с JSON с полным набором ключей и значений.
------
Мы выбираем PATCH, а не PUT или POST, так как по логике работы системы я, как системный аналитик, закладываю:
1. Менеджер подтверждает существующую заявку пользователя - изменяет ее статус с new на confirmed (approved).
То есть создания нового объекта данных нет. Есть изменение существующей заявки, которую ранее создал клиент автосервиса, и дополнение ее данными собранными в звонке от клиента, при необходимости.
2. Для изменения я выбираю PATCH, а не PUT, потому что нужно частичное изменение ресурса - объекта данных "Заявка". Возможно после звонка надо будет только статус поменять и всё, а тело запроса JSON останется пустым в моем примере метода API.
Многие проголосовали за POST. Почему это тоже может быть верно?
Продолжение скоро 🔽
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
3. Можно было бы взять POST в случае если:
1️⃣ Когда клиент оставляет заявку, создается черновик - объект данных "Черновик заявки" / "Запрос клиента" / "...".
2️⃣ Когда менеджер подтверждает созданный клиентом черновик, на уровне БД создается новая сущность "Заявка" на основе данных из "Черновик заявки".
Так как идет создание нового объекта данных, то правильно использовать POST.
Вижу дизайн так:
POST /api/v1/order/{draftId}
Ответ на запрос - HTTP-201 - заявка создана.
Как один из возможных вариантов.
POST может работать в этом контектсе и может быть правильным ответом. Но я склоняюсь к PATCH, т.к. не хочу лишние сущности.
PUT на создание записи в БД в этой задаче не рекомендую использовать, т.к. поддержка оффлайн режима, генерация уникальных идентификаторов на клиенте и идемпотентность здесь не нужны. Но это отдельная большая история... 🙂
Есть еще предложения по решению этой задачи - комментарии! А еще варианты решений точно есть 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡7
В случае, если нам нужно ТОЛЬКО ПРОЧИТАТЬ ДАННЫЕ ИЗ БД, и не надо их записывать или менять в процессе чтения, то мы используем метод GET.
Просмотр списка, просмотр подробной информации о записи из списка, отображение, получение - это все про запрос данных из Базы двнных без их изменения, без записи данных в БД.
POST - может быть использован, только если мы где-то под капотом в процессе чтения еще и записываем данные в БД (например в журна запроса данных по заявкам клиентов). Но такую функциональность мы не планировали.
PUT и PATCH - для изменения ресурсов - объектов данных. Мы в процессе чтения читаем, изменений нет 🙂 Хотя... Если нужно в мессенджере сменить галочки у сообщения на "прочитано" 😅 Но это не наша история по логике!
Так что при желании можно все 4 метода использовать. Но все же, с точки зрения здравого смысла и реальной логики, которую я хочу заложить в метод REST API для автосервиса - это GET. Т.к. нам всего лишь надо прочитать данные из БД и собрать их в красивый JSON, ничего лишнего 🙌
Просмотр списка, просмотр подробной информации о записи из списка, отображение, получение - это все про запрос данных из Базы двнных без их изменения, без записи данных в БД.
POST - может быть использован, только если мы где-то под капотом в процессе чтения еще и записываем данные в БД (например в журна запроса данных по заявкам клиентов). Но такую функциональность мы не планировали.
PUT и PATCH - для изменения ресурсов - объектов данных. Мы в процессе чтения читаем, изменений нет 🙂 Хотя... Если нужно в мессенджере сменить галочки у сообщения на "прочитано" 😅 Но это не наша история по логике!
Так что при желании можно все 4 метода использовать. Но все же, с точки зрения здравого смысла и реальной логики, которую я хочу заложить в метод REST API для автосервиса - это GET. Т.к. нам всего лишь надо прочитать данные из БД и собрать их в красивый JSON, ничего лишнего 🙌
👌4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Кейсы, которые не были учтены на этапе аналитики — это одни из самых дорогих ошибок для компании.
Если аналитик что-то не учёл и проектная команда создала ПО с «дырами в логике», продукт придется откатывать до этапа аналитики, а это большие затраты для компании 🙈
Подписывайтесь на нашу запрещенную соцсеть, чтобы увидеть еще больше крутого контента 😉
Если аналитик что-то не учёл и проектная команда создала ПО с «дырами в логике», продукт придется откатывать до этапа аналитики, а это большие затраты для компании 🙈
Подписывайтесь на нашу запрещенную соцсеть, чтобы увидеть еще больше крутого контента 😉
🤣8😁3
Вопрос квиза, который вызвал максимальное количество обсуждений 🔥
Какой метод REST API использовать для отмены заявки на обслуживание?
Давайте разберем несколько возможных вариантов реализации:
🟡 Отмена = удаление из БД заявки, т.к. по ней не будет работы
Из БД не рекомендуется удалять данные. Если все же будем удалять отмененные заявки, то единственный верный вариант дизайна:
DELETE .../api/v1/order/{orderId}
🟡 Отмена = изменение статуса заявки клиента
Изменение статуса заявки - изменение одного поля "статус" в БД для нее. Лучше всего подходит метод PATCH.
По алгоритму изменение статуса заявки для ее отмены алгоритм выглядит самым простым и логичным.
Варианты дизайна:
PATCH .../api/v1/order/{orderId}
PATCH .../api/v1/order/{orderId}/cancel (рекомендуемый)
PATCH .../api/v1/order/{orderId}/status
🟡 Отмена = изменения признака видимости заявки в системе для менеджера и клиента (сокрытие, когда is_visible=false)
"Удаление" заявки (по факту сокрытие) может реализовываться через PATCH и DELETE несмотря на то, что физического удаления данных из БД не происходит.
То, что DELETE иногда используется для изменения признака видимости, а не фактического удаления данных из БД - распрастраненная практика, которая выглядит логично и удобно с точки зрения читаемости API-документации и понимания логики работы методов.
Варианты дизайна:
PATCH .../api/v1/order/{orderId}
PATCH .../api/v1/order/{orderId}/delete (рекомендуемый)
PATCH .../api/v1/order/{orderId}/status
DELETE .../api/v1/order/{orderId}
Так что возможны и PATCH, и DELETE, но в контексте отмены заявок я бы рекомендовала делать PATCH. А для удаления без фактического удаления использовать DELETE или подглядывать что есть в других методах REST API вашей системы 🙂
А вот почему выбирали POST? Потому что есть проекты. в которых REST API все POST 🥲 Логику оправдать не могу, но она имеет место быть.
Продолжение... 👇
Какой метод REST API использовать для отмены заявки на обслуживание?
Давайте разберем несколько возможных вариантов реализации:
🟡 Отмена = удаление из БД заявки, т.к. по ней не будет работы
Из БД не рекомендуется удалять данные. Если все же будем удалять отмененные заявки, то единственный верный вариант дизайна:
DELETE .../api/v1/order/{orderId}
🟡 Отмена = изменение статуса заявки клиента
Изменение статуса заявки - изменение одного поля "статус" в БД для нее. Лучше всего подходит метод PATCH.
По алгоритму изменение статуса заявки для ее отмены алгоритм выглядит самым простым и логичным.
Варианты дизайна:
PATCH .../api/v1/order/{orderId}
PATCH .../api/v1/order/{orderId}/cancel (рекомендуемый)
PATCH .../api/v1/order/{orderId}/status
🟡 Отмена = изменения признака видимости заявки в системе для менеджера и клиента (сокрытие, когда is_visible=false)
"Удаление" заявки (по факту сокрытие) может реализовываться через PATCH и DELETE несмотря на то, что физического удаления данных из БД не происходит.
То, что DELETE иногда используется для изменения признака видимости, а не фактического удаления данных из БД - распрастраненная практика, которая выглядит логично и удобно с точки зрения читаемости API-документации и понимания логики работы методов.
Варианты дизайна:
PATCH .../api/v1/order/{orderId}
PATCH .../api/v1/order/{orderId}/delete (рекомендуемый)
PATCH .../api/v1/order/{orderId}/status
DELETE .../api/v1/order/{orderId}
Так что возможны и PATCH, и DELETE, но в контексте отмены заявок я бы рекомендовала делать PATCH. А для удаления без фактического удаления использовать DELETE или подглядывать что есть в других методах REST API вашей системы 🙂
А вот почему выбирали POST? Потому что есть проекты. в которых REST API все POST 🥲 Логику оправдать не могу, но она имеет место быть.
Продолжение... 👇
👍6🔥6💔1
Продолжение про подход к выбору методов API - видео-разбор квиза по заявкам 📹
YouTube
3. REST API с нуля: дизайн методов для работы менеджера с заявками автосервиса
Как определять типы методов REST API: POST, GET, PUT, PATCH, DELETE. Разбор квиза из канала: https://t.me/getanalysts/843
Проект: Система для Автосервиса.
---------------------------------------------------
О сообществе:
https://getanalyst.ru/about
Бесплатные…
Проект: Система для Автосервиса.
---------------------------------------------------
О сообществе:
https://getanalyst.ru/about
Бесплатные…
🔥10
Media is too big
VIEW IN TELEGRAM
Хотите посмотреть на подходы к проектированию REST API в разных проектах? Сложности в попытках освоить Postman? Хотите повысить свою квалификацию и расти в карьере? 💼
Бесплатный мастер-класс, где вы сможете не только смотреть, но и попробовать!
🚀 26 июля в 19:00 Мск
🟢 REST API за вечер: от концепции до Postman
ЗАПИСАТЬСЯ НА МАСТЕР-КЛАСС
За один вечер:
🌟 поймете основы работы с REST API,
🌟 научитесь читать и описывать объекты данных систем в JSON-формате,
🌟 узнаете, как правильно определять названия методов.
🌟 перенесете результаты проектирования REST API в документацию Postman.
Эти навыки помогут перейти на новый уровень работы с задачами аналитики, и стать более ценным специалистом для вашей компании.
Готовы к переменам? До встречи в прямом эфире через 5 дней ❤️
Бесплатный мастер-класс, где вы сможете не только смотреть, но и попробовать!
🚀 26 июля в 19:00 Мск
🟢 REST API за вечер: от концепции до Postman
ЗАПИСАТЬСЯ НА МАСТЕР-КЛАСС
За один вечер:
🌟 поймете основы работы с REST API,
🌟 научитесь читать и описывать объекты данных систем в JSON-формате,
🌟 узнаете, как правильно определять названия методов.
🌟 перенесете результаты проектирования REST API в документацию Postman.
Эти навыки помогут перейти на новый уровень работы с задачами аналитики, и стать более ценным специалистом для вашей компании.
Готовы к переменам? До встречи в прямом эфире через 5 дней ❤️
❤11
Если бы я постоянно поддавалась внутреннему "страху", то многие мои желания остались бы нереализованными 😒
Нередко я встречаюсь с недостатком уверенности в себе - так называемым "синдромом самозванца". И это абсолютно нормально.
Когда я говорю об этом своим близким, и буквально ною "У меня ничего не выйдет", они отвечают: "Ты шутишь? Ты уже достигла так много, прошла большой путь! И теперь думаешь, что не сможешь преодолеть это?! Все получится!".
И на моем обучении бизнесу всегда напоминают то же самое: "Делай! Пробуй! Действие лучше бездействия". И я пытаюсь идти к целям. Через ошибки. Но в итоге все получается, хотя и не всегда с первого раза.
Мой опыт показывает, что наличие наставника, который ведет тебя к успеху и помогает быстро развиваться, очень важно. И его ключевое значение - вдохновлять и придавать уверенности в своих знаниях и способностях 🙌
В процессе работы с GetAnalyst я обнаружила, что, кажется, я становлюсь таким же наставником, который не только передает знания и опыт, но и помогает преодолеть синдром самозванца 🌟
Я получаю огромное удовольствие от того, что вы делитесь со мной отзывами не только о ценности практики в процессе обучения, но и о том, как положительно изменилось ваше внутреннее состояние после 😻
Уверенность в себе имеет большое значение в любой работе! Это навык! И он является одним из ключевых для аналитика: сначала на собеседовании, а затем в коммуникациях с вашей командой разработчиков.
Верьте в себя! Всё получится 🙌
Нередко я встречаюсь с недостатком уверенности в себе - так называемым "синдромом самозванца". И это абсолютно нормально.
Когда я говорю об этом своим близким, и буквально ною "У меня ничего не выйдет", они отвечают: "Ты шутишь? Ты уже достигла так много, прошла большой путь! И теперь думаешь, что не сможешь преодолеть это?! Все получится!".
И на моем обучении бизнесу всегда напоминают то же самое: "Делай! Пробуй! Действие лучше бездействия". И я пытаюсь идти к целям. Через ошибки. Но в итоге все получается, хотя и не всегда с первого раза.
Мой опыт показывает, что наличие наставника, который ведет тебя к успеху и помогает быстро развиваться, очень важно. И его ключевое значение - вдохновлять и придавать уверенности в своих знаниях и способностях 🙌
В процессе работы с GetAnalyst я обнаружила, что, кажется, я становлюсь таким же наставником, который не только передает знания и опыт, но и помогает преодолеть синдром самозванца 🌟
Я получаю огромное удовольствие от того, что вы делитесь со мной отзывами не только о ценности практики в процессе обучения, но и о том, как положительно изменилось ваше внутреннее состояние после 😻
Уверенность в себе имеет большое значение в любой работе! Это навык! И он является одним из ключевых для аналитика: сначала на собеседовании, а затем в коммуникациях с вашей командой разработчиков.
Верьте в себя! Всё получится 🙌
❤17🦄2👍1
Media is too big
VIEW IN TELEGRAM
JSON, XML и HTML могут быть переданы и получены в теле REST API запросов. А самый распространенный формат сообщений - JSON.
На видео за 10 минут показываю на простом примере, как делать структуру JSON 👩💻
Главное:
✅ Объекты данных пользователь, библиотека - в {}
✅ "Ключ-название параметра сущности": "Значение"
✅ Если надо список, то используем массивы - в []
✅ В массивах могут быть как списки объектов [{...}, {...},{...}], так и просто значения ["яблоко", "ананас", "груша"]
✅ В конце всех строк запятые. Запятая перед } не ставится
Есть еще особенности, про которые важно знать. Но самое главное для быстрого страта в JSON здесь 😉
На видео за 10 минут показываю на простом примере, как делать структуру JSON 👩💻
Главное:
✅ Объекты данных пользователь, библиотека - в {}
✅ "Ключ-название параметра сущности": "Значение"
✅ Если надо список, то используем массивы - в []
✅ В массивах могут быть как списки объектов [{...}, {...},{...}], так и просто значения ["яблоко", "ананас", "груша"]
✅ В конце всех строк запятые. Запятая перед } не ставится
Есть еще особенности, про которые важно знать. Но самое главное для быстрого страта в JSON здесь 😉
🔥18👍6❤2
Лучший способ понять теорию — получить больше опыта в разных проектах. Я постоянно показываю подходы к работе через публикацию разборов задач: БД, API, Интеграции, требования, и все, что связано с проектированием систем.
Врываемся в новую неделю 🚀
с новым гайдом для системных аналитиков!
📚 Процесс работы системного аналитика: практическое руководство, примеры и шаблоны
Полезная статья для тех, кто еще раз хочет структурировать свои знания, пересмотреть порядок работы с задачами, улучшить требования или проверить, какие документы для постановок задач на разработчиков могут быть созданы в ходе работы 🙌
Врываемся в новую неделю 🚀
с новым гайдом для системных аналитиков!
📚 Процесс работы системного аналитика: практическое руководство, примеры и шаблоны
Полезная статья для тех, кто еще раз хочет структурировать свои знания, пересмотреть порядок работы с задачами, улучшить требования или проверить, какие документы для постановок задач на разработчиков могут быть созданы в ходе работы 🙌
❤7🔥4👏3
Когда на горизонте новый проект: Прыгай выше! 🙌
Как начинается карьера системного аналитика? Простые проекты: описание сценариев работы пользователей, User Story, Use Cases, интервью с заказчиками и пользоателями, описание того, как работают макеты экранов, а иногда и их отрисовка. Будни вроде налажены, всё идет по плану.
Но вот... появляется новый проект. Или просто захотелось сменить работу чтобы расти во всех смыслах и было дальше интересно работать 💸 И всё переворачивается. Стабильные будни не так уж и стабильны 🥲
Оказывается, ты не знаешь, что делать. Не хватает знаний. Приходится лезть в новую тему, искать, как подступиться к этой головоломке. Знакомо?
Но именно в этом и кайф! ❤️ Когда тебя выбрасывает из зоны комфорта, это шанс поймать волну, приобрести новые навыки, улучшить старые. Круто же, когда есть что-то новое, чему можно научиться, или когда в команде разработчиков есть те, кто готов помочь тебе в этом.
Если на работе ты просто крутишься в одном и том же цикле задач, это может огорчать. Вместо того, чтобы прокачивать свои "хард скилы", ты топчешься на месте. И вот, когда решаешь сделать шаг вперед, поискать новый проект, больше денег - ты можешь столкнуться с преградой. Поэтому не забывайте постоянно тренировать мозги, чтобы быть готовыми к новым вызовам.
У системных аналитиков есть куча возможностей для роста. Просто постоянно двигайся вперед, не останавливайся на достигнутом, не бойся неизвестности. Ищи точки роста, чтобы расти в карьере.
Ты - в игре, и ты сам выбираешь, какую стратегию следовать. Ведь главное – не сидеть на месте, а двигаться вперед. Прыгай выше! 📈🤝🙌
Как начинается карьера системного аналитика? Простые проекты: описание сценариев работы пользователей, User Story, Use Cases, интервью с заказчиками и пользоателями, описание того, как работают макеты экранов, а иногда и их отрисовка. Будни вроде налажены, всё идет по плану.
Но вот... появляется новый проект. Или просто захотелось сменить работу чтобы расти во всех смыслах и было дальше интересно работать 💸 И всё переворачивается. Стабильные будни не так уж и стабильны 🥲
Оказывается, ты не знаешь, что делать. Не хватает знаний. Приходится лезть в новую тему, искать, как подступиться к этой головоломке. Знакомо?
Но именно в этом и кайф! ❤️ Когда тебя выбрасывает из зоны комфорта, это шанс поймать волну, приобрести новые навыки, улучшить старые. Круто же, когда есть что-то новое, чему можно научиться, или когда в команде разработчиков есть те, кто готов помочь тебе в этом.
Если на работе ты просто крутишься в одном и том же цикле задач, это может огорчать. Вместо того, чтобы прокачивать свои "хард скилы", ты топчешься на месте. И вот, когда решаешь сделать шаг вперед, поискать новый проект, больше денег - ты можешь столкнуться с преградой. Поэтому не забывайте постоянно тренировать мозги, чтобы быть готовыми к новым вызовам.
У системных аналитиков есть куча возможностей для роста. Просто постоянно двигайся вперед, не останавливайся на достигнутом, не бойся неизвестности. Ищи точки роста, чтобы расти в карьере.
Ты - в игре, и ты сам выбираешь, какую стратегию следовать. Ведь главное – не сидеть на месте, а двигаться вперед. Прыгай выше! 📈🤝🙌
👍12
Одним из таких "новых уровней" для системного аналитика может стать освоение навыка проектирования REST API.
Звучит сложно 🙁 Ну да, может быть. Но подумаем о вариантах - можно остаться в зоне комфорта, или можно принять вызов и поднять свои навыки на новый уровень.
Каждый новый навык, который ты приобретаешь, это вложение в себя и твою карьеру. Это - инвестиция, которая с большой вероятностью окупится в будущем. Не говоря уже о том, что освоение новых хард-скилов (технических навыков) открывает возможность работы в новых крутых проектах, позволяет более уверенно чувствовать себя в срее разработчиков и просто делает тебя лучше 💪
Чтобы помочь вам сделать шаг в освоении REST API, уже в эту среду мы проведем бесплатный мастер-класс:
🌐 REST API за вечер: от концепции до Postman
🗓 26 июля (СР) в 19:00 Мск
🟢 РЕГИСТРАЦИЯ БЕСПЛАТНЫЙ НА МАСТЕР-КЛАСС
Отбрасывй сомнения и регистрируйся на мастер-класс! Это отличный шанс познакомиться с новым навыком, получить базовые знания и сразу же применить их на практике 🤝
Суть профессионального роста - постоянно двигаться вперед, не бояться нового и стараться быть лучше каждый день. Быть лучшей версией себя каждый новый день 🎯
Звучит сложно 🙁 Ну да, может быть. Но подумаем о вариантах - можно остаться в зоне комфорта, или можно принять вызов и поднять свои навыки на новый уровень.
Каждый новый навык, который ты приобретаешь, это вложение в себя и твою карьеру. Это - инвестиция, которая с большой вероятностью окупится в будущем. Не говоря уже о том, что освоение новых хард-скилов (технических навыков) открывает возможность работы в новых крутых проектах, позволяет более уверенно чувствовать себя в срее разработчиков и просто делает тебя лучше 💪
Чтобы помочь вам сделать шаг в освоении REST API, уже в эту среду мы проведем бесплатный мастер-класс:
🗓 26 июля (СР) в 19:00 Мск
🟢 РЕГИСТРАЦИЯ БЕСПЛАТНЫЙ НА МАСТЕР-КЛАСС
Отбрасывй сомнения и регистрируйся на мастер-класс! Это отличный шанс познакомиться с новым навыком, получить базовые знания и сразу же применить их на практике 🤝
Суть профессионального роста - постоянно двигаться вперед, не бояться нового и стараться быть лучше каждый день. Быть лучшей версией себя каждый новый день 🎯
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👌1
Продолжим работу с проектом PorscheLab. Давайте разберем, как сделать дизайн одного REST API метода: создать заявку на обслуживание автомобиля в автосервисе.
1️⃣ Первое, с чем определяемся - кто клиенты метода. Заявки будут создавать как незарегистрированные пользователи, так и менеджеры.
У незарегистрированных пользователей я пока предполагаю максимально упрощенную форму заявки. Причина в том, что заявку на сайте важно собрать быстро, не напрягая пользователя. А при ее подтверждении менеджер уточнит всю информацию, точные данные про автомобиль и другие детали, которые могут понадобиться.
А вот если заявку создает менеджер, то он сразу максимально старается собрать информацию про автомобиль.
Поэтому, чтобы было интересно, проектируем метод создания заявки для менеджера. Он будет использоваться для веб-приложения менеждера в CRM Автосервиса.
P.S. Хотела сразу подмешать в этот метод возможность через него же создавать заявку со стороны сайта, но потом осознала боли, с которыми столкнусь:
- Придется добавить ролевую модель на этот метод API, и возможно придется на отдельные поля писать логику с ограничениями. Это усложнение. Придерживаемся принципа - проще = лучше.
- При обсуждении БД мы увидели два варианта реализации. Заявка от пользователя может быть сущностью "Черновик", на основании которой потом создается сущность "Заявка" со структурированной информацией.
Так что смешивать не будем.
2️⃣ Пермиссии - права доступа
Благодаря пункту 1 и объяснению, почему не стоит делать один метод для сайта и для приложения менеджера, определились, что он будет доступен только менеджеру. И администратору системы.
А еще надо поговорить с заказчиком и уточнить, кто еще сможет создавать заявки со структурированными данными и откуда, из каких приложений.
Итого, метод доступен
для приложений:
+ веб-приложения менеджера (CRM).
для пользователей:
+ менеджер,
+ администратор.
Это требования работе авторизации для метода. Указание приложений важно, если будем авторизовывать по протоколу OAuth 2.0.
Продолжение скоро🔽
У незарегистрированных пользователей я пока предполагаю максимально упрощенную форму заявки. Причина в том, что заявку на сайте важно собрать быстро, не напрягая пользователя. А при ее подтверждении менеджер уточнит всю информацию, точные данные про автомобиль и другие детали, которые могут понадобиться.
А вот если заявку создает менеджер, то он сразу максимально старается собрать информацию про автомобиль.
Поэтому, чтобы было интересно, проектируем метод создания заявки для менеджера. Он будет использоваться для веб-приложения менеждера в CRM Автосервиса.
P.S. Хотела сразу подмешать в этот метод возможность через него же создавать заявку со стороны сайта, но потом осознала боли, с которыми столкнусь:
- Придется добавить ролевую модель на этот метод API, и возможно придется на отдельные поля писать логику с ограничениями. Это усложнение. Придерживаемся принципа - проще = лучше.
- При обсуждении БД мы увидели два варианта реализации. Заявка от пользователя может быть сущностью "Черновик", на основании которой потом создается сущность "Заявка" со структурированной информацией.
Так что смешивать не будем.
Благодаря пункту 1 и объяснению, почему не стоит делать один метод для сайта и для приложения менеджера, определились, что он будет доступен только менеджеру. И администратору системы.
А еще надо поговорить с заказчиком и уточнить, кто еще сможет создавать заявки со структурированными данными и откуда, из каких приложений.
Итого, метод доступен
для приложений:
+ веб-приложения менеджера (CRM).
для пользователей:
+ менеджер,
+ администратор.
Это требования работе авторизации для метода. Указание приложений важно, если будем авторизовывать по протоколу OAuth 2.0.
Продолжение скоро
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
Создать = POST
Заявка = request = order (мне больше нравится order - заказ)
А в базе данных у нас вообще appointment. Это ок. Хороший пример для маппинга и напоминания, что лучше использовать единый язык, и делать названия объектов и полей в БД и в API единообразно.
Сайт, который уже есть у автосервиса:
porschelab.com
Для CRM возьмем домен
crm.porschelab.com
Создавать заявки можно только в онлайн. Поэтому никакие идентификаторы и дополнительные параметры в URL не добавляем.
Версия API - 1.0
Получаем:
POST https://crm.porschelab.com/api/1.0/order
Метод создания заявки на обслуживание автомобиля.
Для создания заявки нам надо получить информацию о клиенте и автомобиле, о времени и сервисе(-ах), на который записывается клиент.
Структуру JSON вижу так:
{
ID заявки,
Номер заявки,
Дата и время записи,
Клиент (с его параметрами),
Авто (с его параметрами),
Список сервисов, которые выбрал клиент
}
Теперь этот текстовый вид преобразую по шагам в реальный JSON, используя тестовые данные для его демонстрации:
{
"time": "2023-08-01T12:00Z03",
"client":
{
"firstname": "John",
"lastname": "Smith",
"birthday": "1990-08-14",
...
},
"auto": {...}
...
}
Почему зачеркнула id и number? Ответы в комментарии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2❤1