웹개발 종합반 4주차

박성우·2023년 3월 23일
0

4주차에는 파이썬 라이브러리를 사용하여 데이터를 요청하고 DB와 연동되는 API 서버를 만들어보았다.

API(Application Programming Interface)

  • 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
  • HTTP request method(요청 메소드)를 통해, 어떤 요청 종류인지 응답하는 서버 쪽에 정보 전달

Flask

python으로 API 서버를 구축할 수 있는 프레임워크

Flask 서버를 만들 경우 반드시 주의해야할 점 중 하나는 html 파일을 넣어둘 templates 폴더를 만드는 것이다.

그래야 flask 내장 함수인 render_template 함수를 이용하여 html을 가져올 수 있기 때문이다.

GET 요청

데이터 조회(Read)를 요청

GET 요청 fetch 코드는 다음과 같다.

fetch("/test").then(res => res.json()).then(data => {
		console.log(data)
})

fetch 함수의 인자로 URL만 넣을 경우 GET 방식이 되고 해당 경로로 연결된 서버로부터 받아온 리턴값을 data로 가져온다.

서버에서는 다음과 같이 경로와 요청 방식을 포함하는 API 코드를 통해 클라이언트와 통신한다.

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

POST 요청

데이터 생성(Create), 변경(Update), 삭제(Delete) 요청

POST 요청 fetch 코드는 다음과 같다.

let formData = new FormData();
formData.append("title_give", "블랙팬서");

fetch("/test", { method: "POST", body: formData }).then(res => res.json()).then(data => {
    console.log(data)
})

POST 요청의 경우 데이터를 조작하기 때문에 fetch 함수의 body 인자와 함께 데이터를 담아서 보낸다.

POST 요청 API 코드는 다음과 같다

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

POST 요청과 GET 요청을 사용할 경우 POST 요청부터 작성하는 것이 좋은데, 데이터를 조회하려면 우선 데이터를 생성하거나 하는 과정이 우선적으로 필요하기 때문이다.

또한, 여기서 DB를 연동할 수 있는데 POST 요청 fetch를 통해 전달받은 데이터를 API를 통해 DB에 저장하고, GET 요청 API를 통해 DB에서 데이터를 꺼낸 다음, 클라이언트로부터 조회가 가능하도록 사용 가능하다.

profile
Backend Developer

0개의 댓글