본문 바로가기
웹 프로그래밍(풀스택-->python)

43. Flask 시작하기 - 본격 API 만들기

by 백엔드개발자0107 2021. 4. 28.

자 우리 본격적으로 api를 만들어 보자!

 

자 그럼 ,api는 무엇인가?

 

api는 은행이 고객을 받기위해서 만들어 놓은 창구처럼 서버도 

 

클라이언트의 요청을 받기위해서 만들어 놓은 창구 ! 그게 api다.

 

api도 규칙이 있고 그에 해당하는 주소가 존재한다.

 

api에는 두가지 종류가 있다.

 

get과 Post가 그 예이다.

쉽게 생각해보자 CRUD ,

 

get->read

 

post -> create,update,delete 이 그 예이다.

@app.route('/test', methods=['GET'])
def test_get():
    title_receive = request.args.get('title_give')
    print(title_receive)
    return jsonify({'result': 'success', 'msg': '이 요청은 GET!'})

 

자 위와 같은 코드는 editor에 적은 코드이고 

 

여기서 위 코드는 서버를 실행했을때 브라우지에서 검사창을 열어서 editor에 실행된 코드가 ajax라이브러리를 통해 잘 실행되었는지 

 

확인하는 코드이다.

 

자 생각해보자 .

 

request.args.get('title_give')

이 코드는 브라우저가 서버한테 "title_give" 라는  이름을 가진 값을 가지고 와라라고 요청하는 것이다.

 

즉 request : 서버 -> 브라우저

     response: 브라우저 -> 서버

 

그럼 서버는 응답하는데, 가만보면 서버의 url이 "/test?title_give=봄날은간다"로 되어있다.

 

여기서 이 url은 앞서 말했듯이 get의 ?(물음표)뒤에  key = value 값으로 값이 저장되어 있는데,

 

이 값이 결과적으로, 위의 key의 "title_give"를 가지고 온다! 라고 생각하면 쉬울꺼같다.

 

request.args.get('title_give')

 

자 위 코드가 실행되면 "봄날은간다"라는 string이 오고 print(title_receive)가 시작된다.

 

  success: function(response){
       console.log(response)
    }
  })

자 이 코드는 브라우저에서 검사를 실행했을때 나오는 코드이다.

 

이 구조를 이해하자면, 실행이 잘 되었을때,(success), response하라 이소리인데, 이때 이 response가 

 

앞서말했듯이 브라우저가 서버한테 값을 쏘아주는것이다. 그러면 응답한다.

 

자 이번에는 editor에다가 post를 사용하는 과정을 적어보자

 

@app.route('/test', methods=['POST'])
def test_post():
    title_receive = request.form['title_give']
    print(title_receive)
    return jsonify({'result': 'success', 'msg': '이 요청은 POST!'})

여기서 post는 위에서 create,update,delete같은데다가 사용한다고 앞서 말했다.

 

get과 원리는 비슷하다.

 

단 get은

 

request.args.get('title_give')

 

post는

 

request.form['title_give']

 

를 이용한다. 이것이 차이고 나머지는 비슷하다.

 

자 그렇다면 post요청 확인코드가 필요하다.

 

$.ajax({
    type: "POST",
    url: "/test",
    data: { title_give:'봄날은간다' },
    success: function(response){
       console.log(response)
    }
  })

이것이 post요청 확인코드이다. 

 

단, get은 url의 key=value값이 들어나는 것에 비해,

post는 아무것도 드러나지 않는다는 것을 알수가 있다.