[250920] TIL
Today I Learned (2025-09-20)
- HTTP μμ² λ³΄λ΄λ λꡬ (Axios, Fetch, Ky)
-
Fetch κΈ°λ° κ²½λ HTTP ν΄λΌμ΄μΈνΈ, λ΄λΆμ μΌλ‘ Fetch μ¬μ©ν¨ + 체μ΄λ API
- λ€νΈμν¬ μ€λ₯ λ°μ μ μλμΌλ‘ μ¬μμ²μ μλνμ¬ μμ μ±μ λμΈλ€.
- νμμμ κΈ°λ₯ λ΄μ₯λμ΄ μμ΄,μλ΅μ΄ μ§μ°λ κ²½μ° μΌμ μκ° ν μμ²μ μ€λ¨ν μ μλ€.
- λ²λ€ ν¬κΈ°κ° μκΈ° λλ¬Έμ μ΄κΈ° λ‘λ© μλλ₯Ό ν₯μμν¬ μ μλ€.
λ¨μ
- HTTP μ€λ₯ μνμ½λλ₯Ό μλμΌλ‘ reject νμ§ μλλ€. λ°λΌμ Fetch API κΈ°λ°μΈ kyλ HTTP Error ν΄λμ€λ₯Ό μ¬μ©νμ¬ μλ¬ μ²λ¦¬λ₯Ό ν΄μΌνλ€.
- λ€νΈμν¬ λ¨μμ μ€ν¨λ§ rejectνκ³ 404, 500 κ°μ μνμ½λλ μ±κ³΅μΌλ‘ μ²λ¦¬ν¨
async function fetchUser() {
try {
const response = await fetch(
"https://jsonplaceholder.typicode.com/invalid-url"
);
// λ€νΈμν¬λ μ±κ³΅νμ§λ§, μν μ½λ νμΈ νμ
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
console.log("μ μ μ 보:", data);
} catch (error) {
console.error("μλ¬ λ°μ:", error.message);
}
}
fetchUser();
import ky from "ky";
async function fetchUser() {
try {
// μ‘΄μ¬νμ§ μλ μλν¬μΈνΈ νΈμΆ
const data = await ky
.get("https://jsonplaceholder.typicode.com/invalid-url")
.json();
console.log("μ μ μ 보:", data);
} catch (error) {
if (error.name === "HTTPError") {
// Kyλ HTTPError ν΄λμ€λ‘ μλ¬ λμ§
console.error("HTTP μλ¬ λ°μ:", error.response.status);
} else {
console.error("κΈ°ν λ€νΈμν¬ μλ¬:", error.message);
}
}
}
fetchUser();
Leave a comment