Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
zaprosi_do_http_api [2024/01/24 19:40] tro |
zaprosi_do_http_api [2024/01/24 19:56] (текущий) tro |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Запроси до HTTP / Api ====== | ====== Запроси до HTTP / Api ====== | ||
| - | ===== fetch (відправка запиту) ===== | + | ====== fetch (відправка запиту) |
| Набір властивостей і методів, | Набір властивостей і методів, | ||
| < | < | ||
| Строка 54: | Строка 54: | ||
| }); | }); | ||
| </ | </ | ||
| - | ===== HTTP-методи ===== | + | ===== HTTP-методи |
| - | * **POST** — створити новий ресурс | + | * **POST** — створити новий ресурс |
| - | * **GET** — отримати набір ресурсів або один ресурс | + | * **GET** — отримати набір ресурсів або один ресурс |
| - | * **PUT** — оновити існуючий або створити новий ресурс | + | * **PUT** — оновити існуючий або створити новий ресурс |
| - | * **PATCH** — оновити існуючий ресурс | + | * **PATCH** — оновити існуючий ресурс |
| - | * **DELETE** — видалити ресурс | + | * **DELETE** — видалити ресурс(**D**elete) |
| + | |||
| + | = CRUD | ||
| < | < | ||
| const options = { | const options = { | ||
| Строка 135: | Строка 137: | ||
| }); | }); | ||
| </ | </ | ||
| + | ====== GET (Запит) ====== | ||
| ===== Параметри рядка запиту ===== | ===== Параметри рядка запиту ===== | ||
| Символ ? вказує на початок параметрів запиту. Кожен параметр — це пара ім' | Символ ? вказує на початок параметрів запиту. Кожен параметр — це пара ім' | ||
| < | < | ||
| fetch(" | fetch(" | ||
| + | </ | ||
| + | ==== Клас URLSearchParams ==== | ||
| + | Параметрів може бути багато, | ||
| + | Під час складання рядків параметрів, | ||
| + | |||
| + | **Приклад 1** | ||
| + | < | ||
| + | const searchParams = new URLSearchParams({ | ||
| + | _limit: 5, | ||
| + | _sort: " | ||
| + | }); | ||
| + | |||
| + | console.log(searchParams.toString()); | ||
| + | const url = `https:// | ||
| + | |||
| + | console.log(url); | ||
| + | </ | ||
| + | У разі інтерполяції значення в шаблонних рядках відбувається його неявне перетворення в рядок, тому не потрібно викликати метод toString() під час складання URL. Не забувай вказувати початок рядка запиту символом ?. | ||
| + | |||
| + | **Приклад 2** | ||
| + | < | ||
| + | // Change this number to fetch different post | ||
| + | const postId = 1; | ||
| + | |||
| + | fetch(`https:// | ||
| + | .then((response) => { | ||
| + | if (!response.ok) { | ||
| + | throw new Error(response.status); | ||
| + | } | ||
| + | return response.json(); | ||
| + | }) | ||
| + | .then(post => console.log(post)) | ||
| + | .catch(error => console.log(error)); | ||
| + | </ | ||
| + | ====== Post (Створення) ====== | ||
| + | Метод POST використовується для додавання нового ресурсу. | ||
| + | < | ||
| + | const postToAdd = { | ||
| + | title: " | ||
| + | body: "CRUD is awesome!", | ||
| + | }; | ||
| + | |||
| + | const options = { | ||
| + | method: " | ||
| + | body: JSON.stringify(postToAdd), | ||
| + | headers: { | ||
| + | " | ||
| + | }, | ||
| + | }; | ||
| + | |||
| + | fetch("< | ||
| + | .then((response) => { | ||
| + | if (!response.ok) { | ||
| + | throw new Error(response.status); | ||
| + | } | ||
| + | return response.json(); | ||
| + | }) | ||
| + | .then(post => console.log(post)) | ||
| + | .catch(error => console.log(error)); | ||
| + | </ | ||
| + | ====== PUT і PATCH (Оновлення) ====== | ||
| + | Використовуються для оновлення існуючих даних. | ||
| + | За HTTP-стандартом: | ||
| + | * PATCH замінює в наявному ресурсі значення, | ||
| + | * PUT повністю замінює ресурс. Значення ресурсу, | ||
| + | |||
| + | < | ||
| + | // Change value of id property to update different post | ||
| + | const postToUpdate = { | ||
| + | id: 1, | ||
| + | body: "CRUD is really awesome!", | ||
| + | }; | ||
| + | |||
| + | const options = { | ||
| + | method: " | ||
| + | body: JSON.stringify(postToUpdate), | ||
| + | headers: { | ||
| + | " | ||
| + | }, | ||
| + | }; | ||
| + | |||
| + | fetch(`https:// | ||
| + | .then((response) => { | ||
| + | if (!response.ok) { | ||
| + | throw new Error(response.status); | ||
| + | } | ||
| + | return response.json(); | ||
| + | }) | ||
| + | .then(post => console.log(post)) | ||
| + | .catch(error => console.log(" | ||
| + | </ | ||
| + | ====== DELETE (Видалення) ====== | ||
| + | використовується для видалення існуючих даних | ||
| + | < | ||
| + | const postIdToDelete = 1; | ||
| + | |||
| + | fetch(`https:// | ||
| + | method: " | ||
| + | }) | ||
| + | .then((response) => { | ||
| + | if (!response.ok) { | ||
| + | throw new Error(response.status); | ||
| + | } | ||
| + | return response.json(); | ||
| + | }) | ||
| + | .then((deletedPost) => console.log(deletedPost)) | ||
| + | .catch(error => console.log(" | ||
| </ | </ | ||