📗 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
😨 Headers в REST API: что это и зачем? 😨
Headers – заголовки запроса и ответа в протоколе HTTP.
Это дополнительные системные параметры, которыми надо обмениваться. Обычно сквозные для всех методов в API, то есть применяются сразу для всех методов.
Помогают:
✔️ Определять, как обрабатывать запрос.
✔️ Передавать метаинформацию о данных (системную).
✔️ Настраивать взаимодействие между клиентом и сервером.
Проще всего разобраться с Headers, познакомившись с набором стандартных значений, которые можно нагло копировать в требования к вашим методам REST API 🙂
📌 Request Headers - для запросов
◽️ Authorization
Используется для передачи токенов доступа, ключей API или других данных для авторизации. Используется для проверки доступа к API-методам.
◽️ Content-Type
Сообщает серверу, в каком формате отправлены данные.
Если сервер не знает в каком формате переданы данные, то он не сможет обработать запрос.
Если его нет в API, то сервер обычно ждёт JSON, если в документации не указано иное.
◽️ Cache-Control
Управляет кэшированием данных на клиенте.
Полезно для работы с экономией трафика.
◽️ Ключи идемпотентности - название придумываете сами
Это уникальный идентификатор для запросов, который помогает избежать дублирования. Например, при повторной отправке платежного запроса сервер проверяет ключ и не создаёт дубль.
Подробнее в подкасте
◽️ Часовые пояса
Когда система работает в разных регионах, важно учитывать часовые пояса и их можно передавать как обязательные заголовки во всех запросах.
Стандартные названия из моего опыта:
📌 + помним про Response Headers (заголовки ответов)
Полные подборки стандартных Headers:
🔗 Wikipedia
🔗 MDN
Правильно выбранные Headers помогают удобно передавать все системные параметры для обмена данными, которые не важны для бизнес-логики и алгоритмов работы API-методов.
#RestApiGA
Headers – заголовки запроса и ответа в протоколе HTTP.
Это дополнительные системные параметры, которыми надо обмениваться. Обычно сквозные для всех методов в API, то есть применяются сразу для всех методов.
Помогают:
✔️ Определять, как обрабатывать запрос.
✔️ Передавать метаинформацию о данных (системную).
✔️ Настраивать взаимодействие между клиентом и сервером.
Проще всего разобраться с Headers, познакомившись с набором стандартных значений, которые можно нагло копировать в требования к вашим методам REST API 🙂
📌 Request Headers - для запросов
◽️ Authorization
Используется для передачи токенов доступа, ключей API или других данных для авторизации. Используется для проверки доступа к API-методам.
Authorization: Bearer <token>
◽️ Content-Type
Сообщает серверу, в каком формате отправлены данные.
Если сервер не знает в каком формате переданы данные, то он не сможет обработать запрос.
Если его нет в API, то сервер обычно ждёт JSON, если в документации не указано иное.
Content-Type: application/json
Content-Type: application/xml
◽️ Cache-Control
Управляет кэшированием данных на клиенте.
Полезно для работы с экономией трафика.
Cache-Control: no-cache
◽️ Ключи идемпотентности - название придумываете сами
Это уникальный идентификатор для запросов, который помогает избежать дублирования. Например, при повторной отправке платежного запроса сервер проверяет ключ и не создаёт дубль.
Подробнее в подкасте
Idempotency-Key: <unique-key>
◽️ Часовые пояса
Когда система работает в разных регионах, важно учитывать часовые пояса и их можно передавать как обязательные заголовки во всех запросах.
Стандартные названия из моего опыта:
Time-Zone: UTC+3
X-Time-Zone: UTC+3
📌 + помним про Response Headers (заголовки ответов)
Полные подборки стандартных Headers:
Правильно выбранные Headers помогают удобно передавать все системные параметры для обмена данными, которые не важны для бизнес-логики и алгоритмов работы API-методов.
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤28🔥13👍10❤🔥3😱1
GetAnalyst - REST API _ Гайд по JSON.pdf
10.2 MB
🔥 Книга по JSON в REST API 🔥 + история про собеседования
Нанимаем системного аналитика на проект, где нужно работать с web-, mobile и backend.
Есть публичная REST API-документация. Опубликована на официальном сайте. Протестировать бесплатно нельзя, почитать бесплатно можно.
Все приложения есть в открытом доступе, можно зарегистрироваться и посмотреть что внутри до собеседования.
Для технической части собеседования не придумываем ничего заумного, а даём реальную задачу из проекта:
👌 Тип метода GET, POST, PUT, PATCH или DELETE выбирают правильно почти всегда.
👌 URL делают, не всегда так, как ожидаем. Но хотя бы понимаем, где придётся доучить.
🥲 А вот когда дело доходит до JSON, то тут мы можем смело принимать решение о продолжении диалога.
🔴 👉 Типичные ошибки и недочеты в JSON:
- Незнание типов данных
- Дата и время - про стандарты ISO не слышали
- Умение самостоятельно описать только "плоские" объекты данных, без вложенных структур
- JSON запроса и ответа одинаковые, либо один из них теряется в случае методов, отличных от GET
- Неумение работать со списками - массивы
- Нейминг (именование полей) порой заставляет и смеяться, и плакать
- Отсутствие знаний базовых структур для методов
+ Незнание инструментов, что сразу показывает отсутствие опыта
Это самое-самое, что бросается в глаза с первых минут.
Давайте не будем допускать эти ошибки? 🙂
Руководство по JSON, прикрепленный к посту - ваш будущий помощник и ориентир в проектировании API 📘
В нем собрала самое ключевое, чтобы не валить ваши собеседования и качественно выполнять свою работу 🙌
-----
P.S.
И большой намек к этому посту:
🚨 REST API-документацию компании можно изучить до собеседования, если она есть в открытом доступе.
Это полезно, чтобы понять, что будут ожидать на практике, и посмотреть на подходы работы в компании.
-----
Запоминаем, сохраняем, пользуемся 🙏
#RestApiGA
Нанимаем системного аналитика на проект, где нужно работать с web-, mobile и backend.
Есть публичная REST API-документация. Опубликована на официальном сайте. Протестировать бесплатно нельзя, почитать бесплатно можно.
Все приложения есть в открытом доступе, можно зарегистрироваться и посмотреть что внутри до собеседования.
Для технической части собеседования не придумываем ничего заумного, а даём реальную задачу из проекта:
Есть экран веб-приложения.
Перед кандидатом скриншот с уже реализованной функциональностью в системе.
Нужно описать REST API метод(-ы) для работы этого экрана.
👌 Тип метода GET, POST, PUT, PATCH или DELETE выбирают правильно почти всегда.
👌 URL делают, не всегда так, как ожидаем. Но хотя бы понимаем, где придётся доучить.
🥲 А вот когда дело доходит до JSON, то тут мы можем смело принимать решение о продолжении диалога.
🔴 👉 Типичные ошибки и недочеты в JSON:
- Незнание типов данных
- Дата и время - про стандарты ISO не слышали
- Умение самостоятельно описать только "плоские" объекты данных, без вложенных структур
- JSON запроса и ответа одинаковые, либо один из них теряется в случае методов, отличных от GET
- Неумение работать со списками - массивы
- Нейминг (именование полей) порой заставляет и смеяться, и плакать
- Отсутствие знаний базовых структур для методов
+ Незнание инструментов, что сразу показывает отсутствие опыта
Это самое-самое, что бросается в глаза с первых минут.
Давайте не будем допускать эти ошибки? 🙂
Руководство по JSON, прикрепленный к посту - ваш будущий помощник и ориентир в проектировании API 📘
В нем собрала самое ключевое, чтобы не валить ваши собеседования и качественно выполнять свою работу 🙌
-----
P.S.
И большой намек к этому посту:
Это полезно, чтобы понять, что будут ожидать на практике, и посмотреть на подходы работы в компании.
-----
Запоминаем, сохраняем, пользуемся 🙏
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥58❤🔥11👍6🤩4❤2
🟢🟠 Инструменты системного аналитика для работы с API 🟡🟣
Работа с API — важный навык для системного аналитика.
👉 Для работы с интеграциями:
Системному аналитику необходимо убедиться, что API внешней системы будет работать именно так, как описано в документации (если она есть, а если нет - то составить), чтобы затем предоставить информацию разработчикам.
Тестирование API внешних систем в специализированных инструментах помогает выявить проблемы в работе внешних систем на ранних стадиях разработки, несоответствия документации реальности, а также проверить полноту данных и доступность сервисов в целом.
👉 Работа с Backend и мобильными командами:
Нужно уметь самому с нуля проектировать и документировать API, желательно с использованием специализированных инструментов как Postman и Swagger, а не только в Confluence-подобных системах.
Список инструментов, которые помогают системным аналитикам в тестировании и документировании API:
🟠 Postman
🟡 SoapUI
🟣 Insomnia
🟢 Swagger
Подробности в картинках к посту ☝️
👉 В конце рекомендую поработать с инструментами
Делюсь своими практическими гайдами, с которыми вы сможете поработать с инструментами сами, с понятными пошаговыми инструкциями:
▫️ Postman: Практическое руководство с примером тестирования открытого API
▫️ GraphQL — знакомство на практике через Postman [пошаговая инструкция]
▫️ Postman: навык тестирования REST API за вечер
+ скоро добавлю для вас Swagger.
#RestApiGA #ИнтеграцииGA
Работа с API — важный навык для системного аналитика.
👉 Для работы с интеграциями:
Системному аналитику необходимо убедиться, что API внешней системы будет работать именно так, как описано в документации (если она есть, а если нет - то составить), чтобы затем предоставить информацию разработчикам.
Тестирование API внешних систем в специализированных инструментах помогает выявить проблемы в работе внешних систем на ранних стадиях разработки, несоответствия документации реальности, а также проверить полноту данных и доступность сервисов в целом.
👉 Работа с Backend и мобильными командами:
Нужно уметь самому с нуля проектировать и документировать API, желательно с использованием специализированных инструментов как Postman и Swagger, а не только в Confluence-подобных системах.
Список инструментов, которые помогают системным аналитикам в тестировании и документировании API:
🟠 Postman
🟡 SoapUI
🟣 Insomnia
🟢 Swagger
Подробности в картинках к посту ☝️
👉 В конце рекомендую поработать с инструментами
Делюсь своими практическими гайдами, с которыми вы сможете поработать с инструментами сами, с понятными пошаговыми инструкциями:
▫️ Postman: Практическое руководство с примером тестирования открытого API
▫️ GraphQL — знакомство на практике через Postman [пошаговая инструкция]
▫️ Postman: навык тестирования REST API за вечер
+ скоро добавлю для вас Swagger.
#RestApiGA #ИнтеграцииGA
🔥34❤10👍6😁2