일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Ethereum
- 러스트
- 블록체인
- dockerfile
- 파이썬
- Fast API
- AWS
- guru
- function
- IMAGE
- 백준
- 코어 이더리움 프로그래밍
- 플랫폼
- 동시성
- rust
- Network
- Kubernetes
- fluent python
- RabbitMQ
- Python
- docker
- Algorithm
- 전문가를 위한 파이썬
- Thread
- BlockChain
- 이더리움
- BAEKJOON
- 알고리즘
- Container
- Refactoring
- Today
- Total
글쓰기 | 방명록 | 관리 |
목록Fast API (6)
Victoree's Blog
1. Middleware란 1) 미들웨어란? 미들웨어란 특정 path에 따른 모든 요청/응답을 처리하기 전에 수행할 함수이다. 앱에 오는 요청을 받고, 작업을 수행하거나 필요한 코드를 수행함 어플리케이션에는 나머지 부분에서 처리할 요청을 전달함 어플리케이션에서 생성한 응답을 가져와, 작업을 수행하거나 필요한 코드를 실행하고 응답을 반환함 미들웨어 예시 import time from fastapi import FastAPI, Request app = FastAPI() @app.middleware("http") async def add_process_time_header(request: Request, call_next): start_time = time.time() response = await call_..
1. 의존성 주입이란? 코드가 작동하고 사용하는데 필요한 종속성을 선언하는 방법이 있음 → 종속성을 코드에 넣는데 필요한 모든 작업을 처리할 수 있음 공통의 코드(중복 코드) 존재 시 데이터베이스 연결 보안, 인증, 등등 [ 간단한 예시 ] from fastapi import Depends, FastAPI app = FastAPI() async def common_parameters(q: Optional[str] = None, skip: int = 0, limit: int = 100): return {"q": q, "skip": skip, "limit": limit} @app.get("/items/") async def read_items(commons: dict = Depends(common_param..
1.Model Dict 1) wrapping/unwrapping @app.post("/user/", response_model=UserOut) async def create_user(user_in: UserIn): user_saved = fake_save_user(user_in) return user_saved user_in 객체는 Pydantic models 임 Pydantic models은 .dict()라는 함수가 있으며, model data를 dict로 리턴함 user_dict = user_in.dict() { 'username': 'john', 'password': 'secret', 'email': 'john.doe@example.com', 'full_name': None, } dict를 unwr..
1. Response Model 1) Response Model Basic 아래와 같은 함수의 response_model 옵션으로 원하는 모델을 설정하면 된다 @app.get() @app.post() @app.put() @app.delete() etc. 출력 데이터를 해당 객체로 변환 데이터 벨리데이션 수행 오픈 API 경로 작업에서 응답에 대한 JSON 스키마 추가 자동 문서화 시스템에 사용됨 출력 데이터를 모델의 데이터로 제한 2) Model In/Out password 같이 리턴되지 말아야하는 값은 UserOut이라는 클래스를 명시적으로 작성하여, 리턴될 때 해당 객체에 정의된 필드만 리턴되도록 구현할 수 있다. class UserIn(BaseModel): username: str password:..
1. Path Parameters 1) 순서 문제 from fastapi import FastAPI app = FastAPI() @app.get("/users/me") async def get_my_info(): return {"user_id": "the current user"} @app.get("/users/{user_id}") async def get_user(user_id: int): return {"user_id": user_id} 위 함수를 정의하는 순서가 중요함 get_user 와 get_my_info 의 순서가 변경되면, user_id의 값을 "me" 라고 생각해 /users/me도 user_id에 연결됨 2) 사전 정의 값 from enum import Enum from fastapi i..
FastAPI는 Python 기반으로 Flask와 같은 개발 편의성에 NodeJS, Go와 같은 성능과 안정성을 갖춘 Web Framework이다. 공식 페이지에서 언급하는 Key Feature는 다음과 같다. Fast / Fast to code / Fewer bugs / Intuitive / Easy / Short / Robust / Standards-based 특징은 다음과 같다. Starlette 프레임워크를 기반으로 한 비동기 API 서버 지원 Pydantic을 사용한 Data validation 지원 API Swagger, ReDoc 등을 사용한 API document 자동 생성 지원 NodeJS, Go와 대등할 정도로 매우 높은 성능 Python3.6+ Type Hinting 지원 Fast A..