JavaScript · API · Початковий
Перший запит
Зробіть свій перший HTTP-запит за допомогою fetch і прочитайте JSON-відповідь.
Короткий вступ до теми та пояснення перед вправами (вправи нижче):
Читання відповіді
#Шпаргалка fetch та Response
#Вправи:
Отримати список товарів
#Зробіть GET-запит до `/api/products/` за допомогою `fetch`. Виведіть загальну кількість товарів (`count`) та кількість результатів на першій сторінці.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// 1. fetch /api/products/
// 2. вивести count та results.length
}
main();
Рішення
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const response = await fetch(`${BASE_URL}/api/products/`);
const data = await response.json();
console.log(data.count);
console.log(data.results.length);
}
main();
Отримати один товар
#Отримайте товар з id 1 за адресою `/api/products/1/`. Виведіть його `name`, `price` та `slug`.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// GET /api/products/1/
// вивести name, price, slug
}
main();
Рішення
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const response = await fetch(`${BASE_URL}/api/products/1/`);
const product = await response.json();
console.log(product.name);
console.log(product.price);
console.log(product.slug);
}
main();
Перевірити response.status та response.ok
#Отримайте `/api/products/99999/` (неіснуючий товар). Виведіть `status` та значення `response.ok`. Потім отримайте `/api/products/1/` і порівняйте.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// Fetch неіснуючого товару — перевірити status і ok
// Fetch реального товару — перевірити status і ok
}
main();
Рішення
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const r1 = await fetch(`${BASE_URL}/api/products/99999/`);
console.log(r1.status, r1.ok); // 404 false
const r2 = await fetch(`${BASE_URL}/api/products/1/`);
console.log(r2.status, r2.ok); // 200 true
}
main();
Отримати категорії
#Зробіть запит до `/api/categories/`. Виведіть загальну кількість категорій та `name` кожної.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// GET /api/categories/ і вивести count + назву кожної
}
main();
Рішення
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const response = await fetch(`${BASE_URL}/api/categories/`);
const data = await response.json();
console.log(data.count);
for (const cat of data.results) {
console.log(cat.name);
}
}
main();
Назва першого товару зі списку
#Отримайте `/api/products/`, візьміть перший елемент з `results` та виведіть його назву і ціну. Конвертуйте ціну в число через `parseFloat` і теж виведіть.
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
// fetch products, взяти перший результат, вивести name, рядок price та parseFloat(price)
}
main();
Рішення
const BASE_URL = 'https://apilearn.tukas.dev';
async function main() {
const response = await fetch(`${BASE_URL}/api/products/`);
const data = await response.json();
const first = data.results[0];
console.log(first.name);
console.log(first.price);
console.log(parseFloat(first.price));
}
main();