JavaScript · API · Початковий
Заголовки та ехо-ендпоінт
Додавайте кастомні HTTP-заголовки до запитів і використовуйте ехо-ендпоінт для перевірки.
Короткий вступ до теми та пояснення перед вправами (вправи нижче):
Використання ехо-ендпоінта
#Довідник заголовків та ехо
#Вправи:
Надіслати кастомний заголовок
#Надішліть GET-запит до `/api/echo/` з кастомним заголовком `X-My-Name: YourName`. Виведіть значення цього заголовка з відповіді ехо.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// GET /api/echo/ із заголовком X-My-Name
// вивести відображене значення заголовка
}
main();
Рішення
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const response = await fetch(`${BASE_URL}/api/echo/`, {
headers: { 'X-My-Name': 'Alice' },
});
const data = await response.json();
console.log(data.headers['X-My-Name']);
}
main();
Надіслати кілька заголовків
#Надішліть GET `/api/echo/` з трьома заголовками: `X-App: my-app`, `X-Version: 1.0` та `X-Request-ID: 42`. Виведіть повний об'єкт `headers` з відповіді.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// надіслати 3 кастомних заголовки, вивести data.headers
}
main();
Рішення
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const response = await fetch(`${BASE_URL}/api/echo/`, {
headers: {
'X-App': 'my-app',
'X-Version': '1.0',
'X-Request-ID': '42',
},
});
const data = await response.json();
console.log(data.headers);
}
main();
Перевірити метод та параметри запиту через ехо
#Надішліть GET `/api/echo/?color=blue&size=large`. Виведіть метод та об'єкт `query_params` з відповіді.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// GET /api/echo/ із двома параметрами запиту
// вивести method і query_params
}
main();
Рішення
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const params = new URLSearchParams({ color: 'blue', size: 'large' });
const response = await fetch(`${BASE_URL}/api/echo/?${params}`);
const data = await response.json();
console.log(data.method);
console.log(data.query_params);
}
main();
POST із заголовком Content-Type
#Надішліть POST до `/api/echo/` з JSON-тілом `{name: "test"}` та заголовком `Content-Type: application/json`. Виведіть відображений заголовок `Content-Type` та поле `body`.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// POST /api/echo/ із JSON-тілом та заголовком Content-Type
// вивести content-type заголовок і body з відповіді
}
main();
Рішення
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const response = await fetch(`${BASE_URL}/api/echo/`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'test' }),
});
const data = await response.json();
console.log(data.headers['content-type'] ?? data.headers['Content-Type']);
console.log(data.body);
}
main();
Використати клас Headers
#Побудуйте об'єкт `Headers` за допомогою `.set()`, додайте принаймні два кастомних заголовки, потім передайте його в GET-запит до `/api/echo/`. Виведіть відображені заголовки.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const headers = new Headers();
// додати заголовки через .set()
// fetch і вивести відображені заголовки
}
main();
Рішення
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const headers = new Headers();
headers.set('X-Client', 'js-api-course');
headers.set('X-Version', '2.0');
const response = await fetch(`${BASE_URL}/api/echo/`, { headers });
const data = await response.json();
console.log(data.headers);
}
main();