Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
zaprosi_do_http_api [2024/01/24 19:46] tro |
zaprosi_do_http_api [2024/01/24 19:56] (текущий) tro |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Запроси до HTTP / Api ====== | ====== Запроси до HTTP / Api ====== | ||
| - | ===== fetch (відправка запиту) ===== | + | ====== fetch (відправка запиту) |
| Набір властивостей і методів, | Набір властивостей і методів, | ||
| < | < | ||
| Строка 137: | Строка 137: | ||
| }); | }); | ||
| </ | </ | ||
| + | ====== GET (Запит) ====== | ||
| ===== Параметри рядка запиту ===== | ===== Параметри рядка запиту ===== | ||
| Символ ? вказує на початок параметрів запиту. Кожен параметр — це пара ім' | Символ ? вказує на початок параметрів запиту. Кожен параметр — це пара ім' | ||
| Строка 145: | Строка 146: | ||
| Параметрів може бути багато, | Параметрів може бути багато, | ||
| Під час складання рядків параметрів, | Під час складання рядків параметрів, | ||
| + | |||
| + | **Приклад 1** | ||
| < | < | ||
| const searchParams = new URLSearchParams({ | const searchParams = new URLSearchParams({ | ||
| Строка 157: | Строка 160: | ||
| </ | </ | ||
| У разі інтерполяції значення в шаблонних рядках відбувається його неявне перетворення в рядок, тому не потрібно викликати метод toString() під час складання 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(" | ||
| + | </ | ||
| + | |||