main.py의 형식과 실행 방법, 대화형 또는 대안 API 문서를 통한 확인은 이전 게시글 참고
FastAPI는 API를 정의하기 위한 OpenAPI 표준을 사용하여 여러분의 모든 API를 이용해 "스키마"를 생성한다
이 경우, OpenAPI는 API의 스키마를 어떻게 정의하는지 지시하는 규격
이 스키마 정의는 API 경로, 가능한 매개변수 등을 포함
"스키마"라는 용어는 JSON처럼 어떤 데이터의 형태를 나타낼 수도 있는데
이러한 경우 JSON 속성, 가지고 있는 데이터 타입 등을 뜻합니다.
OpenAPI는 API에 대한 API 스키마를 정의한다. 또한 이 스키마에는 JSON 데이터 스키마의 표준인 JSON 스키마를 사용하여 API에서 보내고 받은 데이터의 정의(또는 "스키마")를 포함한다.
가공되지 않은 OpenAPI 스키마가 어떻게 생겼는지 궁금하다면, FastAPI는 자동으로 API의 설명과 함께 JSON (스키마)를 생성하니까 로컬에서 앱이 실행되는 url 뒤에 /openapi.json
을 추가한 http://127.0.0.1:8000/openapi.json
에서 직접 볼 수 있다
OpenAPI 스키마는 포함된 두 개의 대화형 문서 시스템을 제공하고 OpenAPI의 모든 것을 기반으로 하는 수십 가지 대안이 있다.
import FastAPI
from fastapi import FastAPI
from fastapi import FastAPI
인스턴스명 = FastAPI()
from fastapi import FastAPI
인스턴스명 = FastAPI()
@인스턴스명.get("/")
일반적으로 "앤드포인트" 또는 "라우트"라고도 불리며 API를 빌드하는 동안 "경로"는 "관심사"와 "리소스"를 분리하는 주요 방법이다
- 여기서 "경로"는 첫 번째 /에서 시작하는 URL의 마지막 부분이므로
https://example.com/items/foo
라는 URL에서의 경로는/items/foo
다
HTTP "메소드" 중 하나
- POST, GET, PUT, DELETE 외에도 OPTIONS, HEAD, PATCH, TRACE도 있다
- HTTP 프로토콜에서는 이러한 "메소드"를 하나(또는 이상) 사용하여 각 경로와 통신할 수 있다
@something
데코레이터라고 부르며 아래 있는 함수를 받고 그걸 이용해 무언가를 한다
@인스턴스.get("/")
FastAPI에게 아래 함수가 경로 /에 해당하는 get 동작하라고 알려주는데 이게 경로 동작 데코레이터다
from fastapi import FastAPI
인스턴스명 = FastAPI()
@인스턴스명.get("/")
async def root():
위에서 먼저 정리한대로
경로는 /
동작은 get 등
함수는 "데코레이터" 아래에 있는 함수 (@app.get("/") 아래).
from fastapi import FastAPI
인스턴스명 = FastAPI()
@인스턴스명.get("/")
async def root():
return {"콘텐츠명":"콘텐츠"}
uvicorn main:app --reload
)