Какой метод используется для добавления автомобиля к существующему клиенту?
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
Классный инструмент для проверки JSON:
https://jsoneditoronline.org - валидатор JSON.
Проверяет соответствие формату.
Берете созданный нами JSON для метода создания заявки менеджером и подставляете для проверки:
{
"time": "2023-08-01T12:00Z03",
"client":
{
"firstname": "John",
"lastname": "Smith",
"birthday": "1990-08-14",
"email": "john10109090@gmail.com"
},
"autoId": "f93a566e-f2e2-4623-9f81-59d23d1695f1",
"services":
[
"4875c6fb-7119-4f15-84c3-3c06ea8f9b46", "e3572bb6-d4dd-4bfd-b965-800bf84cf70c"
]
}
Обратили внимание, что использовала "autoId"? Почему?
Ответы в комментарии 😉
Все просто, если разобраться и узнать как можно больше и особенностей на практике. Например, завтра на мастер-классе ‼️
А пока можете попробовать описать JSON для ответа на наш метод 😉 Да-да, они будут разные. И мы всегда проектируем для методов JSON-структуру запроса и JSON-ы ответов.
https://jsoneditoronline.org - валидатор JSON.
Проверяет соответствие формату.
Берете созданный нами JSON для метода создания заявки менеджером и подставляете для проверки:
{
"time": "2023-08-01T12:00Z03",
"client":
{
"firstname": "John",
"lastname": "Smith",
"birthday": "1990-08-14",
"email": "john10109090@gmail.com"
},
"autoId": "f93a566e-f2e2-4623-9f81-59d23d1695f1",
"services":
[
"4875c6fb-7119-4f15-84c3-3c06ea8f9b46", "e3572bb6-d4dd-4bfd-b965-800bf84cf70c"
]
}
Обратили внимание, что использовала "autoId"? Почему?
Ответы в комментарии 😉
Все просто, если разобраться и узнать как можно больше и особенностей на практике. Например, завтра на мастер-классе ‼️
А пока можете попробовать описать JSON для ответа на наш метод 😉 Да-да, они будут разные. И мы всегда проектируем для методов JSON-структуру запроса и JSON-ы ответов.
jsoneditoronline.org
JSON Editor Online: edit JSON, format JSON, query JSON
JSON Editor Online is the original and most copied JSON Editor on the web. Use it to view, edit, format, repair, compare, query, transform, validate, and share your JSON data.
🔥5❤1
Поймай волну вечера 🏄
REST API за вечер: от концепции до Postman
Уже сегодня в 19:00 по Мск!
РЕГИСТРАЦИЯ НА МАСТЕР-КЛАСС
Привет! Надеюсь, ты уже поставил напоминание? Мы поставили 😉
🕘 За 3 часа - ссылка на вебинарную комнату в почту
🕘 За 15 минут - напоминание во всех каналах и соцсетх GetAnalyst
Как и всегда - это не просто еще один вебинар или лекция. Это шанс поймать волну новых знаний на практике. Идем с серфом в океан и пробуем, пока не встанем на доску уверенно 🙌
Сегодня будем работать с инструментом Postman. Создадим документацию и примеры ответов для фронтенд-разработчиков. Зарегистрируйтесь заранее.
Прокачаете резюме ключевыми словами: REST API, JSON, Postman. И всё это в уютной домашней обстановке, за чашечкой любимого напитка. Можно будет задать мне вопросы в прямом и обсудить вопросы 🚀
Делай шаг, чтобы стать более ценным специалистом для твоей компаниии. Магия начинается уже сейчас 🪄🔮
REST API за вечер: от концепции до Postman
Уже сегодня в 19:00 по Мск!
РЕГИСТРАЦИЯ НА МАСТЕР-КЛАСС
Привет! Надеюсь, ты уже поставил напоминание? Мы поставили 😉
🕘 За 3 часа - ссылка на вебинарную комнату в почту
🕘 За 15 минут - напоминание во всех каналах и соцсетх GetAnalyst
Как и всегда - это не просто еще один вебинар или лекция. Это шанс поймать волну новых знаний на практике. Идем с серфом в океан и пробуем, пока не встанем на доску уверенно 🙌
Сегодня будем работать с инструментом Postman. Создадим документацию и примеры ответов для фронтенд-разработчиков. Зарегистрируйтесь заранее.
Прокачаете резюме ключевыми словами: REST API, JSON, Postman. И всё это в уютной домашней обстановке, за чашечкой любимого напитка. Можно будет задать мне вопросы в прямом и обсудить вопросы 🚀
Делай шаг, чтобы стать более ценным специалистом для твоей компаниии. Магия начинается уже сейчас 🪄🔮
❤11👍2
Спасибо за крутой эфир! Сегодня коллекцией Postman делились все участники мастер-класса!
Разобрали REST с нуля и сделали API-документацию с примерами разных запросов и ответов⚡️
Для Новосибирска повтор завтра в 15:00 по Мск ❤️
Регистрация на повтор, если уже регистрировались на основное мероприятие, не нужна.
Ссылка на 27 июля в 15:00 Мск -> здесь 😏
Разобрали REST с нуля и сделали API-документацию с примерами разных запросов и ответов⚡️
Для Новосибирска повтор завтра в 15:00 по Мск ❤️
Регистрация на повтор, если уже регистрировались на основное мероприятие, не нужна.
Ссылка на 27 июля в 15:00 Мск -> здесь 😏
❤13👍6🔥4
Вчера в прямом эфире мы сделали Postman-документацию - описали три метода для управления данными об автомобиле.
Дополнила ее информацией и примерами по всем методам, доделала небольшие описания к документации и... Получилось 😍
И это всего лишь три метода и первое знакомство с тем, что из себя представляет полноценная постановка задачи на бэкенд!
А что если взять, и сделать полный проект:
✔️ 10+ методов
✔️ Документация Confluence
✔️ Документация Postman с тестами
✔️ Документация Swagger
✔️ Настроенная авторизация Token / OAuth 2.0
Звучит внушительно. И это реально сделать всего за 2 месяца!
1 АВГУСТА начинается предобучение на практическом курсе для системных и бизнес-аналитиков:
🌟 Дизайн REST API
9 живых вебинаров до 1 октября. В таком формате обучения больше не будет! Это возможность получить максимум живой практики сейчас и уже к Новому году открыть новые карьерные возможности 🤝
Вы с нуля, от БД до документации, пройдете путь аналитика по работе с REST API. По итогам у вас будут личные проекты, которые можно использовать для портфолио ⚡️ Смотрите какие результаты у вас уже после мастер-класса!
Есть цель идти вперед в системном анализе? Встречаемся на практике по REST API в августе! 🙌
Дополнила ее информацией и примерами по всем методам, доделала небольшие описания к документации и... Получилось 😍
И это всего лишь три метода и первое знакомство с тем, что из себя представляет полноценная постановка задачи на бэкенд!
А что если взять, и сделать полный проект:
Звучит внушительно. И это реально сделать всего за 2 месяца!
1 АВГУСТА начинается предобучение на практическом курсе для системных и бизнес-аналитиков:
🌟 Дизайн REST API
9 живых вебинаров до 1 октября. В таком формате обучения больше не будет! Это возможность получить максимум живой практики сейчас и уже к Новому году открыть новые карьерные возможности 🤝
Вы с нуля, от БД до документации, пройдете путь аналитика по работе с REST API. По итогам у вас будут личные проекты, которые можно использовать для портфолио ⚡️ Смотрите какие результаты у вас уже после мастер-класса!
Есть цель идти вперед в системном анализе? Встречаемся на практике по REST API в августе! 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥2