728x90
반응형

전체 글 226

[FastAPI] 9. Extra Data Types

주요 데이터 타입 예시UUID: 전역적으로 고유한 식별자, 문자열로 표현Universally Unique Identifier주로 데이터베이스 및 시스템에서 고유 ID로 사용32개의 16진수 문자로 표현되며, 8-4-4-4-12 형식의 다섯 그룹으로 구분request와 response에서는 string으로 나타냄 ex) 123e4567-e89b-12d3-a456-426614174000datetime.datetime날짜와 시간, ISO 8601 형식의 문자열로 표현request와 response에서는 string으로 나타냄ex) 2008-09-15T15:53:00+05:00datetime.date날짜, ISO 8601 형식의 문자열로 표현request와 response에서는 string으로 나타냄 ex) 2..

[FastAPI] 8. Fields

FieldPydantic 모델 내부의 필드에서 모델 속성에 대해 추가 메타데이터 및 유효성 검사를 설정할 때 사용지금까지는 FastAPI 경로 함수의 매개변수에 대해서 Query, Path, Body를 사용기능은 유사하나 Field 함수는 Pydantic 모델 안에서 위와 같은 기능을 설정한다는 차이가 있음from typing import Annotatedfrom fastapi import Body, FastAPIfrom pydantic import BaseModel, Fieldapp = FastAPI()class Item(BaseModel): name: str description: str | None = Field( default=None, title="The descripti..

[FastAPI] 5. Query Parameters(Annotated, Query)

Annotated와 Queryfrom typing import Annotatedfrom fastapi import FastAPI, Queryapp = FastAPI()@app.get("/items/")async def read_items(q: Annotated[str | None, Query(max_length=50)] = None): results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]} if q: results.update({"q": q}) return resultsAnnotated는 typing에서 Query는 fastapi에서 Import 가능 (Python 3.9 이상 기준)Annotated의 목적은 파라미터 타..

[FastAPI] 4. Request Body

Reqeust Body클라이언트가 API에 데이터를 전송할 때 사용즉, 클라이언트가 API로 보내는 데이터가 Request Body(Response Body는 API가 클라이언트로 보내는 데이터)API는 거의 항상 Response Body을 보내야 하지만, 클라이언트는 항상 Request Body을 보낼 필요는 없음Request Body를 선언하기 위해 FastAPI에서는 Pydantic model을 상속받아 사용Pydantic: API에서 입력받는 데이터의 구조와 유형을 정의하는 데 사용. 데이터의 유효성을 자동 검증하고, 올바른 유형 변환데이터의 무결성을 보장, API의 신뢰성과 사용성 증가!from fastapi import FastAPIfrom pydantic import BaseModelclas..

[FastAPI] 3. 쿼리 매개변수(Query Parameters)

쿼리 매개변수from fastapi import FastAPIapp = FastAPI()fake_items_db = [{"item_name": "Foo"}, {"item_name": "Bar"}, {"item_name": "Baz"}]@app.get("/items/")async def read_item(skip: int = 0, limit: int = 10): return fake_items_db[skip : skip + limit]경로 매개변수에 포함되어 있지 않은 매개 변수들은 자동으로 쿼리 매개변수(query parameter)로 인식이 예시에서는 skip, limit이 query parameter쿼리는 URL의 ? 뒤에 오는 키-값 쌍 집합을 의미하고 각각의 변수들은 &로 구분ex) http..

[FastAPI] 2. 경로 매개변수(Path Parameters)

경로 매개변수(Path parameters)from fastapi import FastAPIapp = FastAPI()@app.get("/items/{item_id}")async def read_item(item_id): return {"item_id": item_id}path에 {}로 둘러싸인 부분은 path parameter를 나타냄/items/{item_id}에서 {item_id}는 path paramterURL 경로의 일부로서 변수 값을 전달받을 수 있도록 함클라이언트가 http://127.0.0.1:8000/items/42 와 같은 URL로 요청을 보내개 되면 path paramter인 item_id에는 '42'라는 값이 들어감from fastapi import FastAPIapp = Fa..

[FastAPI] 1. 간단한 FastAPI 만들기

FastAPI 애플리케이션 기본 구조from fastapi import FastAPIapp = FastAPI()@app.get("/")async def root(): return {"message": "Hello World"}Import FastAPIfrom fastapi import FastAPIFastAPI는 API에 대한 모든 기능을 제공하는 Python 클래스Create a FastAPI "Instance"app = FastAPI() FastAPI application insatnce 생성 Instance를 가지고 앞으로 사용할 API경로를 정의하고 각 경로에 대한 요청을 처리하는 엔드포인트(함수)를 등록하는데 사용API를 만드는데 있어서의 중심점 역할을 하는 instanceDefine a ..

[Java] java.net.BindException: Address already in use

HTTP 서버의 기본적인 형태를 구현하여 실행키는데 Exception in thread "main" java.net.BindException: Address already in use 에러가 났다.package myServer;import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;import java.util.List;public class Server { final private static int PORT = 8080; public static void main(String[] args) throws Exception { try (ServerSocket serverSocket = ..

728x90
반응형