Develope/JAVASCRIPT

API get, post 차이

ccuccu 2024. 8. 30. 02:41

api란?

api란 애플리케이션 프로그래밍 인터페이스(Applictaion Programing Interface)의 약자

 

하지만 솔직히 저걸 보자마자 아 저거구나! 하고 와닿지는 않는다. 특히 Cors 에러같은 경우에는 약어 말고 풀 단어로 보면 감이라도 오는데, 얘는 응..? 싶다.

 

조금 더 풀어 쓰자면,

고유한 기능을 가진 모든 소프트웨어 간의 서비스 계약으로, 요청과 응답을 사용하여 서로 통신하는 방법이다. 

 

그럼 통신을 위해서는 어떻게 해야할까?

api 통신을 위해서는 ajax, fetch, axios 등을 이용하여 통신할 수 있는데, 나는 axios를 이용하여 호출했다.

 

axios로 api호출하기

1. npm으로 axios를 설치 후 선언해주기

npm install axios

 

2. 사용할 jsx 파일 상단에 선언해주기

import axios from 'axios'

 

3. axios를 이용한 코드 작성하기

    1. api get

const getApi = async () => {
	try{
        const url = '/api/work_api/updateCompleted';
        let param = {
			파라미터 명: 파라미터 값
        }
        const response = await axios.get(url, {
            params: param,
            // header : {}
        })
        
    }catch(error){
        console.error(error) // 에러 처리용 콘솔
    }
}

useEffect(() => {
	getApi() // 렌더링 될 때 마다 api 호출
}, [])

    2. api post

const getApi = async () => {
	try{
        const url = '/api/work_api/updateCompleted';
        let param = {
			파라미터 명: 파라미터 값
        }
        const response = await axios.post(url, param, {
        	// header: {}
        })
        
    }catch(error){
        console.error(error) // 에러 처리용 콘솔
    }
}

useEffect(() => {
	getApi() // 렌더링 될 때 마다 api 호출
}, [])

 

get은 api의 정보를 가져올 때 사용하는 요청으로, 데이터를 param 속성에 넣어 쿼리 문자열로 전달 후 서버에 요청하며,

post는 api의 정보를 가져오는데 그치지 않고 수정, 삭제 등의 서버에 데이터를 보낼 때 사용하는 요청으로, 데이터 속성에 넣어 서버에 요청한다.

 

{param} 과 param의 차이점?

const response = await axios.get(url, { params: param });
const response = await axios.post(url, param);

 

둘이 비슷비슷, 똑같아 보이지만 잘 보면 파라미터를 넘기는 param의 위치가 조금 다르다.

get은 url 파라미터를 그대로 넘기기 때문에 {param}으로 값을 쿼리 문자열로 변경하여 전달하고 

post는 http body로 담아 값을 전달하여 data 속성으로 전달한다. 

 

get과 달리 post는 url에 보이지 않고, 값 자체를 그대로 data에 담아 전달하기 때문에 보안이 더욱 뛰어나다.

 

 

 

 

 

출처: https://aws.amazon.com/ko/what-is/api/ , https://axios-http.com/kr/docs/intro