Модуль 11 · Урок 42
HTTP contract і Fetch API
HTTP response має status, headers і body; fetch fulfills із Response навіть для 404/500. Тому перевірка response.ok перед parsing є частиною client contract.
Request/response evidence
| Request | Response |
|---|---|
| Method, URL/query, headers, optional body | Status, headers, optional body |
| Origin/credentials/cache policy | CORS/cache/auth contract |
GET є safe та idempotent за HTTP semantics; POST не гарантує idempotency. Не retry mutation автоматично без server-side idempotency contract.
Fetch boundary
const response = await fetch(url, { signal });
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
const data = await response.json();Network failure може reject fetch; HTTP 404/500 зазвичай fulfill Response. CORS — browser/server policy, не error, який виправляють client header trick. Secrets не зберігають у frontend source.
Практика
Заповніть HTTP contract і method/retry matrix для synthetic operations. У Network-like evidence фіксуйте sanitized URL, method, status, content type і timing без credentials/body PII.
Офіційні джерела
Закріпіть матеріал уроку
Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.