FastAPI post 설정

2024. 3. 16. 22:03파이썬/FastAPI

https://blog.neonkid.xyz/252

 

[FastAPI] 1. GET, POST, PUT, DELETE 등 기본 API 만들고 문서 자동화 해보기

지난 글에 이어서 FastAPI를 이용해서 기본적인 REST API 개발 이야기 두 번째를 이어가보도록 하겠습니다. 우리가 REST API를 개발하면 주요 메소드 종류 5가지가 있는데요. 바로 GET, POST, PUT, DELETE, PATC

blog.neonkid.xyz

서버

from fastapi import FastAPI
from pydantic import BaseModel
from starlette.responses import JSONResponse

class Item(BaseModel):
    user_id: str
    password: str

app = FastAPI()

@app.post("/test")
async def test(item: Item):
    dicted_item = dict(item)
    dicted_item['success'] = True
    return JSONResponse(dicted_item)

Client

  • curl
# 호출
 curl -X POST {서버IP}:{PORT}/test -H 'accept: application/json' -H 'Content-Type: application/json' -d '{"user_id": "aa", "password": "dd"}'

# 결과
{"user_id":"aa","password":"dd","success":true}
  • 파이썬

https://studyforus.com/tipnknowhow/837515

 

[Python] Requests에서 JSON 데이터를 POST 전송하는 방법 x2 - Study For Us

requests.post(url, json={"key": "value"}) Requests 2.4.2.부터는 json 파라미터를 직접 사용할 수 있습니다. 위와 같이 처리하는 경우에 Content-Type을 headers에 명시할 필요가 없습니다. headers = {'Content-t...

studyforus.com

# client.py
------------------------
import requests
import json

headers = {
    "accept": "application/json",
    "Content-Type": "application/json"
}

data = {
    "user_id": "az",
    "password": "aaa"
}

url = "http://{IP}:{PORT}/test"
# 선택 1) data로 전송시 headers값이 있어야 함
response = requests.post(url, data=json.dumps(data), headers=headers)
# 선택 2) json으로 보낼시 headeres값 필요 없음
# response = requests.post(url, json={"user_id": "aa", "password": "zzz"})

# 1) 내용 출력 가능
print("Result: ", response.text)
# 2) 내용 출력
result = response.json()
print("API Response: ", result)

------------------------

# 실행
python3 client.py

# 결과
Result:  {"user_id":"az","password":"aaa","success":true}
API Response:  {'user_id': 'az', 'password': 'aaa', 'success': True}

'파이썬 > FastAPI' 카테고리의 다른 글

FastAPI 이미지 만들기  (1) 2024.09.16
파일 다운로드 설정  (0) 2024.06.28
FastAPI CORS 설정  (0) 2024.04.01
FastAPI 설정  (0) 2024.03.16