β μλ²μΈ‘μμ μ 곡νλ HTTP APIμ ν΅μ νμ¬ λ°μ΄ν°λ₯Ό μ‘μμ νλ ν΄λΌμ΄μΈνΈ μΈ‘ μ½λλ₯Ό μμ±νλ νλ‘μΈμ€
βRESTful API
1) μμ (Resource) : APIλ μμμ λνλ λλ€. μλ₯Ό λ€μ΄, λΈλ‘κ·Έ μ ν리μΌμ΄μ μμλ "κ²μλ¬Ό(post)", "μ¬μ©μ(user)", "λκΈ(comment)" λ±μ΄ κ°κ°μ μμμ΄ λ μ μλ€.
2) URI (Uniform Resource Identifier) : κ° μμμ κ³ μ ν URIλ₯Ό κ°λλ€. URIλ ν΄λΉ μμμ μλ³νκ³ μ κ·Όν μ μλλ‘ νλ€. μλ₯Ό λ€μ΄, κ²μλ¬Ό μμμ URIλ "/posts"μΌ μ μλ€.
3) νμ (Verb/Method) : μμμ λν νμλ HTTP λ©μλ(μ: GET, POST, PUT, DELETE)λ₯Ό ν΅ν΄ μ μλλ€. μλ₯Ό λ€μ΄, κ²μλ¬Ό μμμ λν λ°μ΄ν°λ₯Ό κ°μ Έμ€λ €λ©΄ GET λ©μλλ₯Ό μ¬μ©νκ³ , μλ‘μ΄ κ²μλ¬Όμ μμ±νλ €λ©΄ POST λ©μλλ₯Ό μ¬μ©νλ€.
4) νν (Representation) : μμμ μνλ μΌλ°μ μΌλ‘ JSON λλ XMLκ³Ό κ°μ ννλ‘ ννλλ€. ν΄λΌμ΄μΈνΈκ° μμμ μνλ₯Ό μμ²νλ©΄ μλ²λ ν΄λΉ ννμ μ 곡νλ€.
5) μν μ μ΄ (Stateless) : RESTful APIλ μνλ₯Ό μ μ₯νμ§ μκ³ , κ° μμ² κ°μ μνλ₯Ό μ μ΄μν€μ§ μλλ€. κ° μμ²μ μμ νκ² λ 립μ μ΄λ©°, λͺ¨λ νμν μ 보λ μμ² μ체μ ν¬ν¨λμ΄ μμ΄μΌ νλ€.
π example)
import axios from 'axios';
// GET μμ²
axios.get('/api/data')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('Error fetching data:', error);
});
// POST μμ²
axios.post('/api/create', { data: 'example' })
.then(response => {
console.log('Data created:', response.data);
})
.catch(error => {
console.error('Error creating data:', error);
});