Python мануфактураJavaDesign Patterns для автоматизаторів

Java · Основний курс · 0:00–2:28

Consumer, producer і REST resources

Звична client–server model узагальнюється термінами consumer і producer. Consumer споживає дані або можливість, producer їх надає. Така мова працює не лише для browser і web server, а й для взаємодії між сервісами. Комунікація має protocol і contract. API-документації може не бути, вона може бути написаною вручну і застарілою або code-generated з анотацій у коді. У REST сутності представлені resources, а операції над ними — endpoints з HTTP-методами `GET`, `POST`, `PUT`, `DELETE`.

Вступ до API-автоматизації →

Java · Advanced: API-автоматизація · 0:00–20:00

JSON structure і межі raw strings

Raw JSON у Java string швидко стає незручним для large/nested payload і parameterization. JSON file у resources є кращим temporary step, але typed object дає compile-time names/types і IDE support. Розбираються objects, arrays, values, nested arrays і відмінності JSON від XML-style wrappers. Модель має повторювати actual wire shape, а не вигадану class hierarchy.

POJO, Jackson і контролери →

Java · Advanced: API-автоматизація · 0:00–5:00

Вебсервіси, SOAP і RESTful

Вебсервіс подається як software component, через який розподілені системи обмінюються даними. SOAP оперує messages і XML contracts, тоді як RESTful services будують інтерфейс навколо resources та HTTP semantics. Автор порівнює XML, JSON, binary payloads і statefulness. Практичний висновок для тестувальника: перед автоматизацією треба визначити реальний protocol, media types і contract, а не припускати REST лише за JSON payload.

Теоретичний вступ до вебсервісів →

Java · Сесії: AMA та PMP · 6:55–10:20

Ринкова цінність навичок без культу overperformance

[Дивитися з 06:55](https://www.youtube.com/watch?v=reaHS8_pZbU&t=415s). Автор очікує, що на майбутніх співбесідах питатимуть не лише про prompts, а й про context management, перевірку output, open-source tools, code analysis та integration AI у development workflow. Повна відмова від таких інструментів на поточному client може залишити прогалину в досвіді, тому навички варто розвивати на дозволених або власних матеріалах. Для досвідченого інженера постійний overperformance не гарантує стабільності роботи: layoffs можуть бути наслідком budget, product strategy, regulation, зміни пріоритетів або перерозподілу resources. Рекомендована альтернатива — передбачуваний sustainable pace. Новачку тимчасово потрібна більша інвестиція часу для навчання, але це не має перетворюватися на норму для всієї кар’єри.

Як працювати на спокійному проєкті та з нав’язаними оцінками →

Java · Основний курс · 13:02–15:45

REST, status codes і централізовані errors

Для API automation потрібно окремо вивчити REST semantics: methods, resources, типові status codes і їхню очікувану поведінку. Public endpoints зазвичай оптимізовані для frontend або зовнішніх clients, private endpoints можуть обслуговувати внутрішню service-to-service communication і мати інший контракт. Самого HTTP status недостатньо. Централізований error handling має повернути consumer стабільний internal error code і зрозуміле пояснення: якого поля бракує або яке значення невалідне. Власні HTTP status codes на кшталт `600` не замінюють нормального error contract.

Вступ до API-автоматизації →

Java · Advanced: API-автоматизація · 15:00–20:00

REST як architectural style і HTTP protocol

REST пояснюється як набір architectural constraints/recommendations, а HTTP — як application protocol для client–server communication. Ці терміни не є синонімами. Ресурс представляє domain entity у контракті, URI ідентифікує його, а HTTP method виражає operation. Тест має перевіряти не лише response body, а й method semantics, headers, status і state transition.

Теоретичний вступ до вебсервісів →

Java · Основний курс · 15:45–17:23

Protocols, API Gateway і Backend for Frontend

Окрім REST, системи використовують WebSocket, gRPC і GraphQL. Протокол обирається під задачу, тому перед автоматизацією потрібно зрозуміти не лише endpoint, а й модель комунікації. Backend for Frontend — це gateway з контрактом, зручним для конкретного client: web frontend, mobile application або окремого screen. Зовні він відкриває потрібні resources, а всередині може агрегувати кілька services з їхніми базами і queues.

Вступ до API-автоматизації →

Java · Сесії: AMA та PMP · 23:19–33:00

REST і GraphQL уже дають словник для API automation

У REST структура починається з resources та HTTP methods. `Pet`, `Store` або `User` задають назви controllers/clients, а дії на кшталт create, update, delete чи find by ID — назви методів. Request і response models корисно розділяти, бо server response часто містить поля, яких не було у request. У GraphQL треба повторювати назви queries, mutations, inputs і types зі schema. Code generation може дати готові типи, але базове правило те саме: не створювати паралельний словник там, де backend contract уже має точні терміни. Read-only доступ до frontend і backend repositories допомагає швидше зрозуміти систему й підтримувати automation разом зі змінами продукту.

Неймінг та структура automation-проєкту →

Java · Advanced: API-автоматизація · 1:10:00–1:30:00

Resource controllers і negative responses

Коли один endpoint method потрібен кільком тесам, він переходить у resource controller/service. Межа class залежить від real API: окремий service на resource або кілька related resources в одном service client. Для negative tests controller краще повертати raw `Response`, щоб test явно перевірив status, headers і error body. Примусова deserialization success DTO для `4xx/5xx` сховає реальний contract.

POJO, Jackson і контролери →

Java · Основний курс · 1:16:00–1:20:17

Сирий JSON для requests і typed objects для responses

Якщо request DTO поки занадто складний, request JSON можна тимчасово зберігати у resources і відправляти як file/string. Для response автор наполягає на typed object: так deserialization одразу виявляє зміну structure або field types, яка могла б поламати frontend. Помилки Jackson потрібно читати і звіряти з документацією або пошуком, а не механічно копіювати AI-відповідь. Configuration, helpers і DTO варто рознести за окремими classes, щоб не змішувати mapping, transport і assertions.

API-автоматизація: MVC і Jackson →
Запитати в чаті про «resources» →