cURL을 이용해서 API 호출하기
cURL을 이용해서 API 호출하기
Web
cURL을 이용해서 API 호출하기
Flask로 만든 API를 호출하는 방법 중 하나는 cURL을 사용하는 것입니다. cURL은 URL을 통해 데이터 전송을 가능하게 해주는 명령줄 도구입니다. 이 글에서는 cURL을 이용해 Flask API를 호출하는 방법에 대해 설명하겠습니다.
1. Flask API 준비하기
먼저, API를 호출할 Flask 애플리케이션을 설정합니다. 아래는 PDF 파일을 이미지로 변환하여 ZIP 파일로 반환하는 간단한 Flask API 코드입니다.
from flask import Flask, request, send_file
from pdf2image import convert_from_path
import zipfile
import os
import io
import tempfile
= Flask(__name__)
app
@app.route('/convert-pdf', methods=['POST'])
def convert_pdf():
if 'pdf' not in request.files:
return "No PDF file provided.", 400
= request.files['pdf']
pdf_file
# 임시 파일 생성
with tempfile.NamedTemporaryFile(delete=False, suffix='.pdf') as temp_pdf:
pdf_file.save(temp_pdf.name)= temp_pdf.name
temp_pdf_path
try:
# PDF를 이미지로 변환
= convert_from_path(temp_pdf_path)
images
# 메모리 내에서 ZIP 파일 생성
= io.BytesIO()
zip_io with zipfile.ZipFile(zip_io, 'w') as zip_file:
for i, image in enumerate(images):
= f'page_{i + 1}.jpg'
img_name 'JPEG')
image.save(img_name,
zip_file.write(img_name)
os.remove(img_name)
0)
zip_io.seek(return send_file(zip_io, mimetype='application/zip', as_attachment=True, download_name='pages.zip')
finally:
os.remove(temp_pdf_path)
if __name__ == '__main__':
=True) app.run(debug
2. cURL을 이용한 API 호출
이제 Flask API가 준비되었으니, cURL을 사용하여 이 API를 호출해보겠습니다.
2.1 cURL 설치 확인
먼저, cURL이 설치되어 있는지 확인합니다. 터미널에서 다음 명령어를 입력해 보세요:
curl --version
cURL의 버전 정보가 출력되면 설치된 것입니다. 설치되어 있지 않다면, 각 운영체제에 맞는 방법으로 cURL을 설치합니다.
2.2 PDF 파일 준비
API 호출에 사용할 PDF 파일을 준비합니다. 예를 들어, sample.pdf
라는 이름의 PDF 파일을 현재 디렉토리에 저장합니다.
2.3 cURL 명령어 실행
아래의 cURL 명령어를 사용하여 API를 호출합니다:
curl -X POST -F 'pdf=@sample.pdf' http://127.0.0.1:5000/convert-pdf --output pages.zip
명령어 설명
-X POST
: HTTP POST 메서드를 사용하여 요청을 보냅니다.-F 'pdf=@sample.pdf'
:pdf
라는 이름의 필드로sample.pdf
파일을 첨부합니다.@
기호는 해당 파일을 참조한다는 의미입니다.http://127.0.0.1:5000/convert-pdf
: 요청을 보낼 Flask API의 URL입니다.--output pages.zip
: API로부터 받은 ZIP 파일을pages.zip
이라는 이름으로 저장합니다.
3. 결과 확인
cURL 명령어를 실행하면 pages.zip
이라는 파일이 현재 디렉토리에 생성됩니다. 이 ZIP 파일을 열어보면, PDF 파일의 각 페이지가 JPG 이미지로 변환되어 저장되어 있는 것을 확인할 수 있습니다.
4. 결론
cURL은 HTTP 요청을 간편하게 테스트할 수 있는 강력한 도구입니다. Flask API와 함께 사용할 때, 데이터를 간편하게 전송하고 응답을 받을 수 있어 유용합니다.