👩💻🧑💻 Когда Системный Аналитик работает с REST API 👩💻🧑💻
Когда затрагивают тему REST API, то полезно знать, что могут требовать от Системного Аналитика.
Предлагаю вам чек-лист, который вы всегда можете применить, чтобы оценить свой текущий круг обязанностей и то, что может ожидать вас в будущих проектах 🙌
👉 При создании новой функциональности
У вас в команде Frontend и Backend разрабатываются отдельно.
Frontend / Мобильные приложения взаимодействуют с Backend по REST API.
Когда в системе нужно добавить новую функциональность, то от аналитика ожидают, что он может
со стороны Backend - спроектировать REST API методы:
▫️ Определить REST API методы, которые нужно разработать для обеспечения работы Frontend.
▫️ Описать алгоритмы их работы, которые будут программировать разработчики.
▫️ Продумать требования к обработке ошибок для этих алгоритмов.
▫️ Сделать ролевую модель доступов к REST API методам.
▫️ Спроектировать структуру API-методов:
+ на естественном языке описать входные параметры запроса и параметры ответа на запрос.
+ продумывать техническую реализацию и описывать сразу тип метода (GET, POST, ...), endpoint (URL), query-параметры, headers запроса и ответа, тело JSON запроса и ответа, статус-код ответа.
▫️ Описывать маппинги (сопоставление) данных между БД и параметрами API-методов (в URL, JSON).
▫️ Формировать техническую API-документацию, которую в дальнейшем будут использовать разработчики: в Postman, Confluence или Swagger (OpenAPI).
со стороны Frontend - подключение разработанного на Backend REST API метода:
▫️ Читать техническую REST API-документацию.
▫️ Проверять работу готовых REST API методов через Postman, чтобы убедиться, что все работает так, как описано в документации.
▫️ Описывать маппинги (сопоставление) данных между UI и параметрами API-методов (в URL, JSON).
👉 Интеграция систем - подключение внешних систем
Состав подзадач аналогичен подключению API на Frontend.
Только работа ведется не с внутренней документацией, а с чужой - на внешние системы.
👉 Интеграция систем - создание интеграционных API-методов
Нужно сделать REST API-метод на Backend, который будет вызывать любой API внешней системы (хоть REST, хоть SOAP, хоть GraphQL).
Состав подзадач аналогичен проектированию API-методов на Backend.
Только маппиг данных теперь будет не только для БД и параметрами нашего API-метода (в URL, JSON). К нему добавятся еще и параметры внешней системы.
👉 Для анализа ошибок работы ПО
Что-то пошло не так при работе Frontend (или мобильного приложения)?
Открываем консоль.
Анализируем запросы и ответы REST API методов.
Тестируем сложные ситуации через Postman, смотрим на результаты и ищем причины ошибок.
Рекомендация:
Для Системного аналитика важно понимать REST API не только с точки зрения возможностей, но и с точки зрения ограничений, типовых проблем и ошибок в проектировании. Чем лучше вы их понимаете, тем качественнее будет работать ПО разработанное по вашим требованиям.
#RestApiGA
Когда затрагивают тему REST API, то полезно знать, что могут требовать от Системного Аналитика.
Предлагаю вам чек-лист, который вы всегда можете применить, чтобы оценить свой текущий круг обязанностей и то, что может ожидать вас в будущих проектах 🙌
👉 При создании новой функциональности
У вас в команде Frontend и Backend разрабатываются отдельно.
Frontend / Мобильные приложения взаимодействуют с Backend по REST API.
Когда в системе нужно добавить новую функциональность, то от аналитика ожидают, что он может
со стороны Backend - спроектировать REST API методы:
▫️ Определить REST API методы, которые нужно разработать для обеспечения работы Frontend.
▫️ Описать алгоритмы их работы, которые будут программировать разработчики.
▫️ Продумать требования к обработке ошибок для этих алгоритмов.
▫️ Сделать ролевую модель доступов к REST API методам.
▫️ Спроектировать структуру API-методов:
+ на естественном языке описать входные параметры запроса и параметры ответа на запрос.
+ продумывать техническую реализацию и описывать сразу тип метода (GET, POST, ...), endpoint (URL), query-параметры, headers запроса и ответа, тело JSON запроса и ответа, статус-код ответа.
▫️ Описывать маппинги (сопоставление) данных между БД и параметрами API-методов (в URL, JSON).
▫️ Формировать техническую API-документацию, которую в дальнейшем будут использовать разработчики: в Postman, Confluence или Swagger (OpenAPI).
со стороны Frontend - подключение разработанного на Backend REST API метода:
▫️ Читать техническую REST API-документацию.
▫️ Проверять работу готовых REST API методов через Postman, чтобы убедиться, что все работает так, как описано в документации.
▫️ Описывать маппинги (сопоставление) данных между UI и параметрами API-методов (в URL, JSON).
👉 Интеграция систем - подключение внешних систем
Состав подзадач аналогичен подключению API на Frontend.
Только работа ведется не с внутренней документацией, а с чужой - на внешние системы.
👉 Интеграция систем - создание интеграционных API-методов
Нужно сделать REST API-метод на Backend, который будет вызывать любой API внешней системы (хоть REST, хоть SOAP, хоть GraphQL).
Состав подзадач аналогичен проектированию API-методов на Backend.
Только маппиг данных теперь будет не только для БД и параметрами нашего API-метода (в URL, JSON). К нему добавятся еще и параметры внешней системы.
👉 Для анализа ошибок работы ПО
Что-то пошло не так при работе Frontend (или мобильного приложения)?
Открываем консоль.
Анализируем запросы и ответы REST API методов.
Тестируем сложные ситуации через Postman, смотрим на результаты и ищем причины ошибок.
Рекомендация:
Для Системного аналитика важно понимать REST API не только с точки зрения возможностей, но и с точки зрения ограничений, типовых проблем и ошибок в проектировании. Чем лучше вы их понимаете, тем качественнее будет работать ПО разработанное по вашим требованиям.
#RestApiGA
👍29❤5🥰2👌2😁1
Каждый месяц в GetAnalyst мы проводим продвинутые практикумы, посвященные проектированию БД и SQL.
Тема этого месяца:
План практики:
1. Нефункциональные требования и их связь с БД.
2. Понятие индексов в БД и их назначение. Разбор примеров.
3. Практика: знакомство с БД проекта и определение таблиц с индексами.
4. Проблемы избыточной оптимизации БД.
5. Индексы в постановках задач на разработчиков.
👨💻 Этот практикум идеально подходит для системных аналитиков, стремящихся углубить свои знания и навыки в области проектирования баз данных и оптимизации систем.
Присоединяйтесь к нам 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍9
📗 REST API - главные принципы, про которые спрашивают на собеседованиях 📗
REST API — это архитектурный стиль для создания веб-сервисов, основанный на протоколе HTTP.
То, что REST API основан на протоколе HTTP, означает, что все принципы работы, структура запросов и ответов, будут также применимы и для REST API.
Архитектурный стиль REST приносит для HTTP дополнительные правила и принципы, по которым должен происходить обмен данными в Интернете 👇
Главные принципы REST:
1. Строгое разделение клиента и сервера
2. Единый интерфейс
3. Без сохранения состояния (Stateless)
4. Многоуровневая система
5. Кэширование
6. Выполнение кода по запросу
В картинках к посту просто и с примерами разобрала эти принципы.
Это не самая ценная в работе информация, но перечень этих принципов и их понимание могут спрашивать на собеседованиях 👌
#RestApiGA
REST API — это архитектурный стиль для создания веб-сервисов, основанный на протоколе HTTP.
То, что REST API основан на протоколе HTTP, означает, что все принципы работы, структура запросов и ответов, будут также применимы и для REST API.
Архитектурный стиль REST приносит для HTTP дополнительные правила и принципы, по которым должен происходить обмен данными в Интернете 👇
Главные принципы REST:
1. Строгое разделение клиента и сервера
2. Единый интерфейс
3. Без сохранения состояния (Stateless)
4. Многоуровневая система
5. Кэширование
6. Выполнение кода по запросу
В картинках к посту просто и с примерами разобрала эти принципы.
Это не самая ценная в работе информация, но перечень этих принципов и их понимание могут спрашивать на собеседованиях 👌
#RestApiGA
🔥39❤10👍10😁2🤩2
📌 Проект по REST API - Электронная Библиотека #ElibraGA 📌
Каждый месяц в канале GetAnalyst мы изучаем навыки для системных аналитиков через разбор проектов.
Этот месяц мы посвятим проектированию методов REST API для приложения электронной библиотеки #ElibraGA.
В ходе разбора темы я буду делать фокус на:
✅ разработку корпоративных стандартов REST API в компании, которые помогают работать над проектом,
✅ документирование REST API в Swagger.
📚 О проекте 👇
Пользователи-читатели:
+ Регистрируются на платформе через веб- или мобильное приложение
+ Оплачивают подписку, которая дает возможность скачивать 1, 3, 5 или 15 книг в месяц.
+ Получают доступ к списку книг
+ Могут скачать книгу
Администраторы платформы:
+ Добавляют новые книги
+ Редактируют или удаляют существующие
+ Просматривают полный список пользователей-читателей
+ Блокируют и активируют аккаунты читателей
+ Смотрят информацию о подписках и платежах
👉 Наши задачи по проектированию REST API методов
▫️ Сделать с нуля методы POST, GET, PUT, PATCH, DELETE
▫️ Научиться описывать JSON
▫️ Создать задачи на разработчиков
▫️ Формировать корпоративный стандарт по дизайну REST API для проекта
▫️ Создать документацию в Swagger (OpenAPI)
Подписаны на канал?
Значит вы участвуете в проекте и получаете новый опыт 🤝
Проект объявляю открытым!🎉
#RestApiGA
Каждый месяц в канале GetAnalyst мы изучаем навыки для системных аналитиков через разбор проектов.
Этот месяц мы посвятим проектированию методов REST API для приложения электронной библиотеки #ElibraGA.
В ходе разбора темы я буду делать фокус на:
✅ разработку корпоративных стандартов REST API в компании, которые помогают работать над проектом,
✅ документирование REST API в Swagger.
📚 О проекте 👇
Пользователи-читатели:
+ Регистрируются на платформе через веб- или мобильное приложение
+ Оплачивают подписку, которая дает возможность скачивать 1, 3, 5 или 15 книг в месяц.
+ Получают доступ к списку книг
+ Могут скачать книгу
Администраторы платформы:
+ Добавляют новые книги
+ Редактируют или удаляют существующие
+ Просматривают полный список пользователей-читателей
+ Блокируют и активируют аккаунты читателей
+ Смотрят информацию о подписках и платежах
👉 Наши задачи по проектированию REST API методов
▫️ Сделать с нуля методы POST, GET, PUT, PATCH, DELETE
▫️ Научиться описывать JSON
▫️ Создать задачи на разработчиков
▫️ Формировать корпоративный стандарт по дизайну REST API для проекта
▫️ Создать документацию в Swagger (OpenAPI)
Подписаны на канал?
Значит вы участвуете в проекте и получаете новый опыт 🤝
Проект объявляю открытым!
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥59👍16❤2😁1
💛 Структура методов REST API в одной картинке 💛
Коллеги, публикую для вас картинку-шпаргалку, которую можно использовать при проектировании методов REST API 🙌
Эта задача актуальна для старших системных аналитиков, которые работают с Backend-командами, с мобильной разработкой, в проектах с микросервисной архитектурой или в других сложных проектах, где нужно проектировать и описывать процесс обмена данными между системами.
А чтобы вы наглядно могли сопоставить структуру на картинке с реальными REST API, предлагаю вам посмотреть примеры открытой API-документации для интеграции с крупными сервисами:
ТБанк - Зарплатный проект
API - Умного дома от Яндекс
ЦИАН - Покупка и продажа недвижимости
Проверьте себя!
Это отличная практика по изучению структуры методов REST API.
Сможете ли найти все описанные на картинке параметры в документации?
Дополнительно рекомендую посмотрить эту статью, если вы пропустили пост про связь REST API и протокола HTTP.
#RestApiGA
Коллеги, публикую для вас картинку-шпаргалку, которую можно использовать при проектировании методов REST API 🙌
Эта задача актуальна для старших системных аналитиков, которые работают с Backend-командами, с мобильной разработкой, в проектах с микросервисной архитектурой или в других сложных проектах, где нужно проектировать и описывать процесс обмена данными между системами.
А чтобы вы наглядно могли сопоставить структуру на картинке с реальными REST API, предлагаю вам посмотреть примеры открытой API-документации для интеграции с крупными сервисами:
ТБанк - Зарплатный проект
API - Умного дома от Яндекс
ЦИАН - Покупка и продажа недвижимости
Проверьте себя!
Это отличная практика по изучению структуры методов REST API.
Сможете ли найти все описанные на картинке параметры в документации?
Дополнительно рекомендую посмотрить эту статью, если вы пропустили пост про связь REST API и протокола HTTP.
#RestApiGA
❤22🔥11👍5👌3
Появились как часть протокола HTTP, чтобы стандартизировать взаимодействие между клиентом и сервером.
Каждый метод выполняет определённое действие и соответствует логике CRUD-модели (Create, Read, Update, Delete).
Основные HTTP-методы, которые нужно знать при проектировании REST API 👇
Добавить новую книгу в библиотеку.
Зарегистрировать пользователя.
Создать платеж за подписку.
Посмотреть список книг.
Получить информацию о выбранной книге.
Просмотреть информацию о своём профиле.
Проверить статус подписки.
для полной замены данных ресурса - редактирования, либо для создания нового.
Вызываем PUT (изменить/создать) для книги с ISBN 1234567890:
👉 если книга с таким ISBN уже была создана, то обновить данные по ней целиком, даже если какие-то параметры, как название, не редактируются.
👉 если книга с таким ISBN еще не создана, то создать новую.
ISBN здесь будет выступать как ключ идемпотентности - уникальный идентификатор, по которому проверяем есть запись о ресурсе в системе или нет, чтобы выполнить нужное действие.
для обновления только некоторых полей ресурса - частичное редактирование.
Изменить описание книги. При этом действии в БД поменяется только её описание, и не будет полной перезаписи всех полей, даже если они не менялись, как это происходит при использовании PUT.
Удалить выбранную книгу
Удалить выбранные книги из списка
Удалить платеж, если он не оплачен.
Удалить книгу из “избранного”.
Распространенные ошибки в REST API:
- Игнорирование назначения методов.
- Использовать все POST вместо рекомендуемых методов.
- Неправильное использование PUT и PATCH.
Правильное использование HTTP-методов в REST API упрощает взаимодействие с вашей системой, так как делает API предсказуемым и удобным для разработчиков.
#RestApiGA #ElibraGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍11🔥6😁1
Если вы недавно интересовались актуальными требованиями к Системным аналитикам, то наверняка видели:
+ Знание стандартов REST API / JSON
+ Опыт проектирования и документирования API
+ Понимание принципов работы мобильных приложений
+ Знание OpenAPI / Swagger для создания REST API документации
+ Навык тестирования API Backend (Postman)
Все эти навыки, в разных формулировках, ожидают от Middle и Senior Cистемных аналитиков, которым предстоит работать с Backend- или мобильными командами, в проектах с интеграциями.
Мы осваиваем их на практике в рамках одного большого проекта на программе:
💻 Дизайн REST API
В ходе работы учимся проектировать методы REST API с нуля, глядя на требования, архитектуру, БД и дизайн UI/UX системы.
Проект с подвохами и сложностями, на котором “набиваем шишки”, учимся писать с нуля и структурировать API-документацию, осваиваем ключевые инструменты СА 🛠
👉 В результате вы создаете свой проект API-документации в Postman и умеете запустить работающие REST API методы Backend на заглушках, даже без навыков программирования! 🤩
Это самая весомая и “программистская” часть вашего профессионального портфолио.
🗓 До 27 января
Запись на специальных условиях с дополнительным обучением по БД в подарок, знания которой понадобятся в ходе работы на проекте.
Есть вопросы? Пишите @getanalyst или заполняйте анкету предзаписи. Мы свяжемся с вами, поможем оценить текущие навыки и ответим на вопросы! 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4👌1
GetAnalyst - Структура URL для REST API.png
1.4 MB
Разбираем тему на примере методов:
👉 POST /books
👉 GET /books
👉 GET /books/{bookId}
Подробности в документе к посту.
✅ Метод HTTP
Не относится к URL, но тесно связан с ним. Описывала правила выбора в этом посте.
✅ Протокол
В начале любого URL указывается протокол HTTP(s), который обеспечивает передачу данных.
✅ Доменное имя
Основной адрес, по которому можно обращаться к серверу.
✅ Путь (Path)
Путь включает в себя один или несколько сегментов, разделённых слешами (/).
▫️“api” - указатель на каталог API сервера, может быть название вида api. Это необязательный сегмент, может отсутствовать в URL.
▫️имя api - указывает на конкретный интерфейс API, предназначенный для разных пользователей системы.
▫️v1 - версия API, важна для поддержки совместимости с предыдущими версиями.
▫️books - это ресурс, к которому осуществляется доступ. В данном случае “книга”. Может быть в единственном числе (book).
▫️{bookId} - это параметр в пути URL (path-параметр), указывающий на конкретную книгу по её id в БД системы. Фигурные скобки {} обозначают переменную часть URL, значение которой должно быть предоставлено клиентом (например, идентификатор 78679).
4️⃣ Query-параметры (Query-parameters)
Дополнительные параметры запроса после ?, необязательны. Если их несколько, то перечисление через символ &.
Обычно используются для фильтров, сортировок и пагинации при получении списков методом GET, но могут быть и в других API-методах.
В примере:
GET …/books?offset=0&limit=10&name=аналитика&yearFrom=2010
👉 ?offset=0&limit=10 указывает на запрос результатов с 0-го, ограниченный 10-ю результатами на страницу. Это два отдельных query-параметра, которые являются элементами пагинации (постраничного получения данных через API).
👉 &name=аналитика - фильтр на название книги.
👉 &yearFrom=2010 - фильтр на год выпуска книги.
Это основные элементы URL в REST API, которые помогают точно определить, к какому ресурсу (сущности) должен быть осуществлен доступ 💾
#RestApiGA #ElibraGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤8🔥5❤🔥1
GetAnalyst_Ошибки_проектирования_методов_REST_API.pdf
416.5 KB
🐝 Ошибки проектирования методов REST API 🐞
API (программный интерфейс) - это как UI (пользовательский интерфейс).
За нажатием на кнопку “Удалить” может скрываться алгоритм создания 🙈
Да, кнопка называется “Удалить”, но главное то, что запрограммировали разработчики в коде.
Так и с API: за методом POST на создание данных может быть реализован алгоритм получения данных.
Это самое важное, что нужно знать о REST API 🙂
Собрала для вас статью, в которой показала основные ошибки при определении методов REST API - эндпоинтов (метод HTTP + URL):
1. Выбор метода POST, GET, PUT, PATCH, DELETE, который не соответствует действию
2. Все методы POST
3. Глагол действия в URL - названии эндпоинта, который дублирует команду HTTP-метода
4. Опущена важная часть URL
5. Нарушена иерархия в URL
6. Слишком длинный путь в URL
7. Отсутствие элементов пагинации для списка
8. Единственное или множественное число в URL
9. Нарушение корпоративного стиля
Подробности с примерами в статье. Загружаем, изучаем, сохраняем в личный архив 🤝
Рекомендации из этой статьи помогут сделать ваш API интуитивно понятным и соответствующим рекомендациям архитектурного стиля REST API.
#RestApiGA #ElibraGA
API (программный интерфейс) - это как UI (пользовательский интерфейс).
За нажатием на кнопку “Удалить” может скрываться алгоритм создания 🙈
Да, кнопка называется “Удалить”, но главное то, что запрограммировали разработчики в коде.
Так и с API: за методом POST на создание данных может быть реализован алгоритм получения данных.
Это самое важное, что нужно знать о REST API 🙂
Собрала для вас статью, в которой показала основные ошибки при определении методов REST API - эндпоинтов (метод HTTP + URL):
1. Выбор метода POST, GET, PUT, PATCH, DELETE, который не соответствует действию
2. Все методы POST
3. Глагол действия в URL - названии эндпоинта, который дублирует команду HTTP-метода
4. Опущена важная часть URL
5. Нарушена иерархия в URL
6. Слишком длинный путь в URL
7. Отсутствие элементов пагинации для списка
8. Единственное или множественное число в URL
9. Нарушение корпоративного стиля
Подробности с примерами в статье. Загружаем, изучаем, сохраняем в личный архив 🤝
Рекомендации из этой статьи помогут сделать ваш API интуитивно понятным и соответствующим рекомендациям архитектурного стиля REST API.
#RestApiGA #ElibraGA
🔥21👍11❤3
Кто не успел записаться на Оптимизацию БД и индексы, то еще можно успеть подключиться к нам сегодня в 19:00 Мск.
+ занятие про распределенные БД на неделе посмотреть.
🔗 Подробности и запись тут
До встречи в эфире! 🙂
+ занятие про распределенные БД на неделе посмотреть.
До встречи в эфире! 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2❤1
➡️ Элементы пагинации (limit, offset, count) для работы со списками в REST API ➡️
Когда мы работаем со списками в REST API, почти всегда рекомендуется использовать элементы пагинации (pagination). Особенно, при запросе данных из таблиц БД с большим количеством строк.
Элементы пагинации позволяют реализовывать постраничную выдачу данных. Другими словами, разбивать большие объемы данных на маленькие части.
Ключевые параметры пагинации (допустимы другие названия):
◽️ limit — максимальное количество записей, которые хотим получить в ответе. Query-параметр.
◽️ offset — смещение, с которого начинается выборка данных. Query-параметр.
◽️ count — общее количество записей по запросу. Возвращается в ответе, в body (JSON), вместе со списком.
Пример получения списка книг в #ElibraGA:
GET https://elibraga-online.com/api/public/v1/books
Этот запрос вернет список всех книг. Но что, если книг 100тыс и нам нужно получать их список частями? Вот здесь и пригодятся limit и offset.
Допустим, нам нужно получать по 20 книг за один запрос.
🔸 Первый запрос: получить первые 20 книг
GET https://elibraga-online.com/api/public/v1/books?limit=20&offset=0
🔸 Второй запрос: еще 20 книг
GET https://elibraga-online.com/api/public/v1/books?limit=20&offset=20
🔸Третий запрос: еще 20 книг
GET https://elibraga-online.com/api/public/v1/books?limit=20&offset=40
Так мы можем получать данные частями, что значительно упрощает работу с большим количеством записей.
Зачем это нужно? 😎
1. Удобство отображения: Не все данные нужно отображать сразу, особенно если их очень много.
2. Оптимизация: Запросы с меньшим количеством данных обрабатываются быстрее и требуют меньше ресурсов.
Теперь вы знаете, как легко использовать эти параметры для работы с REST API 🙂
#RestApiGA
Когда мы работаем со списками в REST API, почти всегда рекомендуется использовать элементы пагинации (pagination). Особенно, при запросе данных из таблиц БД с большим количеством строк.
Элементы пагинации позволяют реализовывать постраничную выдачу данных. Другими словами, разбивать большие объемы данных на маленькие части.
Это нужно, чтобы не загружать с сервера за один запрос весь миллион записей из БД, а делать это порциями. Такое решение экономит трафик.
Ключевые параметры пагинации (допустимы другие названия):
◽️ limit — максимальное количество записей, которые хотим получить в ответе. Query-параметр.
◽️ offset — смещение, с которого начинается выборка данных. Query-параметр.
◽️ count — общее количество записей по запросу. Возвращается в ответе, в body (JSON), вместе со списком.
Пример получения списка книг в #ElibraGA:
GET https://elibraga-online.com/api/public/v1/books
Этот запрос вернет список всех книг. Но что, если книг 100тыс и нам нужно получать их список частями? Вот здесь и пригодятся limit и offset.
Допустим, нам нужно получать по 20 книг за один запрос.
🔸 Первый запрос: получить первые 20 книг
GET https://elibraga-online.com/api/public/v1/books?limit=20&offset=0
🔸 Второй запрос: еще 20 книг
GET https://elibraga-online.com/api/public/v1/books?limit=20&offset=20
🔸Третий запрос: еще 20 книг
GET https://elibraga-online.com/api/public/v1/books?limit=20&offset=40
Так мы можем получать данные частями, что значительно упрощает работу с большим количеством записей.
Зачем это нужно? 😎
1. Удобство отображения: Не все данные нужно отображать сразу, особенно если их очень много.
2. Оптимизация: Запросы с меньшим количеством данных обрабатываются быстрее и требуют меньше ресурсов.
Теперь вы знаете, как легко использовать эти параметры для работы с REST API 🙂
#RestApiGA
👍40❤11🔥6
🙌 Сводка по проектированию эндпоинтов REST API 🙌
🔗 HTTP-методы
🔗 Структура URL
🔗 Ошибки проектирования методов REST API
Проверим, насколько вы хорошо усвоили материал по эндпоинтам REST API.
Попробуйте ответить на вопросы, а затем сравнить с предложенными ответами 👇
1. Какой метод сделать для регистрации нового пользователя?
❌ POST https://elibraga-online.com/api/public/v1/createUser
В URL дублируется действие (глагол create), которое уже указывает HTTP-метод POST.
✅ POST https://elibraga-online.com/api/public/v1/users
+ Метод POST используется для создания новых ресурсов - регистрация = создание пользователя.
+ users является сущностью, к которой относится запрос.
2. Как получить список авторов с фильтрацией по жанру?
❌ GET .../api/public/v1/authorsByGenre/{genre}
Фильтрация по жанру в данном случае не является частью основного ресурса.
✅ GET .../api/public/v1/authors?genre=fiction
+ Query-параметры позволяют удобно передавать фильтры, такие как genre=fiction. Значение жанра может отличаться, также их можно перечислить через запятую. Это делает запрос гибким и легко расширяемым.
3. Как получить список заказов пользователя?
✅ GET .../api/public/v1/orders
То, что это заказы конкретного пользователя, понимает за счет того, что запрос подписан авторизацией.
✅ GET .../api/admin/v1/users/123/orders
Для админского метода выстроена иерархия от пользователя к заказу для просмотра заказов внутри информации о пользователе.
✅ GET .../api/admin/v1/orders?userId=123
В общем списке заказов в админке можно применить фильтр по пользователю.
4. Как сделать метод отмены заказа пользователем?
◽️DELETE .../api/public/v1/orders/{orderId}
Больше подходит, чтобы показать удаление неоплаченного заказа.
✅ PATCH .../api/public/v1/orders/{orderId}/cancel
Глагол действия на смену статуса вынесен в конец URL, что часто встречается для PATCH (еще бывают archive, pay и подобные).
Сколько правильных ответов получилось?
Задавайте вопросы в комментариях 🙂
Делитесь результатами и доп решениями💡
#RestApiGA #ElibraGA
Проверим, насколько вы хорошо усвоили материал по эндпоинтам REST API.
Попробуйте ответить на вопросы, а затем сравнить с предложенными ответами 👇
1. Какой метод сделать для регистрации нового пользователя?
✅ POST
+ Метод POST используется для создания новых ресурсов - регистрация = создание пользователя.
+ users является сущностью, к которой относится запрос.
2. Как получить список авторов с фильтрацией по жанру?
Фильтрация по жанру в данном случае не является частью основного ресурса.
✅ GET .../api/public/v1/authors?genre=fiction
+ Query-параметры позволяют удобно передавать фильтры, такие как genre=fiction. Значение жанра может отличаться, также их можно перечислить через запятую. Это делает запрос гибким и легко расширяемым.
3. Как получить список заказов пользователя?
То, что это заказы конкретного пользователя, понимает за счет того, что запрос подписан авторизацией.
✅ GET .../api/admin/v1/users/123/orders
Для админского метода выстроена иерархия от пользователя к заказу для просмотра заказов внутри информации о пользователе.
✅ GET .../api/admin/v1/orders?userId=123
В общем списке заказов в админке можно применить фильтр по пользователю.
4. Как сделать метод отмены заказа пользователем?
Больше подходит, чтобы показать удаление неоплаченного заказа.
✅ PATCH .../api/public/v1/orders/{orderId}/cancel
Глагол действия на смену статуса вынесен в конец URL, что часто встречается для PATCH (еще бывают archive, pay и подобные).
Сколько правильных ответов получилось?
Задавайте вопросы в комментариях 🙂
Делитесь результатами и доп решениями💡
#RestApiGA #ElibraGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥7👍6⚡2😁1