본문 바로가기
Python

Flask API 만들기 : GET & POST 방식 요청하는 법

by Jann 2022. 2. 9.
728x90

GET & POST 요청 방식으로 Flask API 만들기 

 

클라이언트가 서버에 통신을 요청할 때 여러방식이 있는데 기본적으로 HTTP(HyperText Transfer Protocol) 통신 규약에 따라 요청을 해야한다. 

Flask API 만들기 : GET & POST 방식 요청하는 법

 

GET & POST 요청 방식

* GET → 보통 데이터 조회(Read)를 요청할 때 사용한다. 예) 영화 목록 조회

- 데이터 전달 형태 : URL 뒤에 물음표를 붙여 key=value로 전달 → 예: google.com?q=북극곰

 

* POST → 보통 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때 사용한다. 예) 회원가입, 비밀번호 수정

- 데이터 전달 형태 : 바로 보이지 않는 HTML body에 key:value 형태로 전달

 

GET, POST 요청으로 클라이언트 데이터 받는 방법

 

예를 들어 회원가입 시(join), GET, POST 요청으로 API를 만든다고 가정해보자.

 

GET 방식으로 JOIN 페이지의 이름(name)을 조회(Read)하는 API를 만들 수 있다.

GET 방식으로 요청한 data는 아래의 Ajax 형태에 담겨서 전달된다.

 

GET 요청 API코드

@app.route('/join', methods=['GET'])
def join_get():
   name_receive = request.args.get('name_give') #'name_give'라는 key값
   print(name_receive)
   return jsonify({'result':'success', 'msg': 'GET 요청!'})

 

GET 요청 확인(콘솔) Ajax 코드

$.ajax({
    type: "GET",
    url: "/join?name_give=jann",
    data: {},
    success: function(response){
       console.log(response)
    }
  })

GET 방식 데이터 전달 방법

url :  ? : 여기서부터 전달할 데이터가 작성된다 ( & : 전달할 데이터가 더 있다)

data : {} 요청하면서 함께 줄 데이터로 GET 요청시엔 비워둔다.

 

POST 요청 API코드

@app.route('/join', methods=['POST'])
def join_post():
   name_receive = request.form['name_give']
   print(name_receive)
   return jsonify({'result':'success', 'msg': 'POST 요청!'})

 

POST 요청 확인 Ajax코드

$.ajax({
    type: "POST",
    url: "/join",
    data: { name_give:'jann' },
    success: function(response){
       console.log(response)
    }
  })

 

GET, POST 요청 차이점

GET, POST 요청 시 url 형태, data {} 담기는 형태의 차이가 있다.

 

GET 요청 url에섯 key:value 값이 담기는 데 반해, POST 요청 시 /join 등의 url 형태이다.

그리고 GET 요청 시 data: {} 비어있는데 반해, POST 요청 시 data: {key:'value'} 담긴다.

 

비교적 적은 양의 데이터는 GET 요청(default 값이기도 하다), 전송하는 데이터 양이 많을 때는 POST 방식을 사용한다.

728x90

댓글