Similar presentations:
API. Яндекс.Практикум
1.
APIЯндекс.Практикум
2.
Регламент вебинара• Выключаем микрофоны
• Вопросы задаем в чат
• Не отвлекаемся
• Активно работаем
Яндекс.Практикум
3.
План встречи1. API,как устроены современные приложения?
2. REST/SOAP
3. Документация на API
4. Составление тестовой документации для работы
с API
Яндекс.Практикум
4.
Технический слайдСмотрим HH
Смотрим виды АПИ
Мемы
Яндекс.Практикум
5.
Что такое API?API - Application Programming Interface
Яндекс.Практикум
Загуглить
REST API
SOAP
gRPC
Graphql
6.
С какими API вы работаете каждый день?Яндекс.Практикум
7.
Яндекс.Практикум8.
С какими API вы работаете каждый день?• Slack – клиент на устройстве отправляет запросы и
получает данные с серверов через API
• Приложение банка
• Заказ <что_угодно> через сайт
Яндекс.Практикум
9.
Почему важно уметь тестировать API?• Существуют приложения без графического
интерфейса
• Локализация ошибок и раздельное тестирование
Бэк/Фронт
• Проверка сценариев, которые невозможно проверить
через интерфейс – можно проверить больше
• Гибкий и быстрый способ генерации тестовых данных
• Не все тестировщики умеют тестировать API
Яндекс.Практикум
10.
Реальное приложение может быть устроено такЯндекс.Практикум
11.
Но чаще оно устроено такЯндекс.Практикум
Загуглить
Monolith
SOA
MSA
KAFKA
12.
Форматы данных в API(JSON, XML)
Яндекс.Практикум
13.
REST: что важно помнить1. Работает на основании
HTTP/HTTPS
2. Основной формат передачи
данных —JSON (есть и другие)
3. 6 принципов RESTful
4. Простой и гибкий
5. Запрос/ответ состоит из 3
частей: Строка состояния,
заголовки, тело
Яндекс.Практикум
14.
SOAP: что важно помнить1. Работает на основании
SOAP/HTTP/HTTPS
2. Основной формат передачи
данных —XML строго!
3. Сообщение состоит из 3-х
частей
Envelop, Header, Body
4. WSDL – язык описания
сервисов и доступа к ним
Яндекс.Практикум
15.
JSON (JavaScript Object Notation)- Набор пар ключ-значение (как в словаре)
- Порядок пар не важен, может меняться от запроса к
запросу
- Ключ — всегда строка
- Значение:
-
строка
число
null
Логический
true или false
массив (перечисление через запятую)
объект (другой JSON)
Яндекс.Практикум
16.
JSON (пример){
}
"name": "Иван Иванович",
"age": 24,
"isMarried": false,
"children": null,
"cars": ["а123бв10", "б321ав01"],
"mobilePhone": {
"name": "Samsung",
"made": 2015
}
Яндекс.Практикум
17.
XML (eXtensible Markup Language)Каким может быть содержание тега?
• Строка, число и т.д.
• Пустое
• Открывающий тег может содержать атрибуты
• Другой тег
Яндекс.Практикум
18.
Структура на примере простого XML- Корневой тег
(Родительский)
- Потомок и
родитель
- Потомки
(дочерние теги)
Яндекс.Практикум
19.
Структура XMLДекларация описывает версию XML документа и кодировку
-----------------------------------------------------------
Атрибуты хранят в себе дополнительную информацию
-----------------------------------------------------------
Яндекс.Практикум
20.
XML и HTMLОдно и то же?
Яндекс.Практикум
21.
XML и HTMLHTML – HyperText
Markup Language
XML – eXtensible Markup
Language
Яндекс.Практикум
22.
XML vs HTMLЯндекс.Практикум
23.
Где писать JSON/XML?• Блокнот
• Notepad++
• Sublime Text
• Online: JSONViewer
• programmer's
notepad
• VScode
Яндекс.Практикум
24.
Вопросыпро теорию API ?
Яндекс.Практикум
25.
ДокументацияAPI
Яндекс.Практикум
26.
Документация для APIЗачем нужна?
Где взять?
Яндекс.Практикум
27.
Документация для API• Swagger
• Apidoc: пример
• Текстовые
документы
• Разработчик
• …
Яндекс.Практикум
28.
Немного про HTTPЯндекс.Практикум
29.
Какие задачи решает HTTP?- Структура передачи
данных
- Передача документов
- Передача меты
- Авторизация
- Поддержка сессий
- Кеширование
Яндекс.Практикум
документов
30.
Почему HTTP?- Работает поверх
TCP/TLS ( нужно
надежное соединение)
- Запрос ответ / нет
стриминга
- Текстовый ( человек
может читать)
Яндекс.Практикум
- Расширяемый
31.
Из чего состоит HTTP-запрос- URL / endpoint /
«ручка»
- Метод
- Query-параметры
- Заголовки
- Тело запроса
Яндекс.Практикум
32.
Как тестировать API?Яндекс.Практикум
33.
Как тестировать API?Так же, как и все остальное — по
документации
-что должен делать конкретный
сервис?
- какие есть заголовки и
параметры?
-структура запроса
-какие параметры обязательны
-типы данных
-валидация
Яндекс.Практикум
34.
Как тестировать API?Что проверять?
- Статус-код ответа
- Структура ответа
- Если вносились изменения, то
они видны:
- в приложении
- в базе-данных
- в ответе этой или другой ручки
- Прикладывай CURL!
Яндекс.Практикум
35.
Статус-коды:1xx — информационные
2хх — успешное выполнение
3хх — перенаправление
4хх — ошибка на стороне
клиента
5хх — ошибка на стороне
сервера
4хх иногда заменяют на 2хх
Яндекс.Практикум
36.
Тестовая документация:тестирование API
Яндекс.Практикум
37.
Тестовая документация: тестирование APIДокументация всё та же ;)
• Чеклисты
• Тест-кейсы
Яндекс.Практикум
38.
Тестовая документация: тестирование AВажно помнить:
• В основе – требования,
а не реализация
• Применяем техники
тест-дизайна
• Проверяем негативные
сценарии
Яндекс.Практикум
39.
Вопросы ?Яндекс.Практикум