RestFul API

HTTP 요청을 위한 복잡한 작업을 단순화하는 requests 라이브러리

567Rabbit 2024. 5. 30. 11:31

requests 라이브러리란?

 

 

requests 라이브러리는 HTTP 요청을 보내기 위해 복잡한 작업을 단순화하여

 

 

사용자가 HTTP 요청을 보내는 과정을 매우 간단하게 만들어주는 라이브러리이다.

 

 

 

vscode cmd창에서 입력하여 설치할 수 있다.

 

pip install requests

 

 

 

 

장점

 

(1) 세션 지원

- requests.Session 객체를 사용하여 여러 요청 간에 지속적인 세션을 유지할 수 있다.

- 쿠키와 인증 정보를 쉽게 관리할 수 있다.

 

 

(2) 쿠키, 헤더, 파라미터 지원

- 요청 시 쿠키, 헤더, URL 파라미터 등을 쉽게 설정할 수 있다.

 

 

(3) 파일 업로드 및 다운로드

- 파일 업로드 및 다운로드 작업을 간단하게 수행할 수 있다.

 

 

(4) JSON 응답 처리

- JSON 형식의 응답을 쉽게 처리할 수 있다.

 

 

 

 

 

from flask import request
from flask_restful import Resource

# API 요청 라이브러리
import requests

# 내가 만든 보안 값 class
from config import Config

class NewSearchResource(Resource) :
    def get(self) :
		
        # params 에 쿼리 값이 없으면 리턴
        if 'query' not in request.args :
            return {"result":"fail", "error":"검색어는 필수입니다."}, 400
        
        # params에 있던 값 변수로 저장 (딕셔너리여서 .get() 도 가능하다.)
        keyword = request.args.get('query')

        # 네이버 API 호출한다.
        # API 호출하는 라이브러리 requests
        
        # 파이썬 코드로 GET, POST, PUT, DELETE API를
        # 처리해주는 라이브러리가 requests 다.
		
        # openAPI 에서 제공하는 url, params
        # params 안에는 내가 설정한 값 + 옵션들
        # openAPI 를 사용할 수 있는 아이디 값 과 시크릿 값 입력
        url = 'https://openapi.naver.com/v1/search/news.json'
        params = {'query' : keyword,
                  'display' : 30,
                  'sort' : 'date'}
        headers = {'X-Naver-Client-Id' : Config.X_NAVER_CLIENT_ID,
                   'X-Naver-Client-Secret' : Config.X_NAVER_CLIENT_SECRET}
		
        # 값을 requests의 get()함수 사용해서 받아주기
        response = requests.get( url, params= params, headers= headers)
        
        # 응답으로부터 데이터를 JSON으로 받는다.
        # 포스트맨 응답 바디에 JSON으로 되어있어서 가능하다.
        response = response.json()
        print( response )

        return {"result" : "success", 
                "items" : response['items'], 
                "count" : len(response['items'])}