Programming Language(174)
-
Fast API - 라우팅 데코레이터의 속성
라우팅 데코레이터에는 기존에 라우팅을 하는 문자열 뿐만 아니라 여러가지의 속성이 들어가 추가적인 기능을 할 수 있게 설정할 수 있다.이 속성들에 대해서 간단하게 필요한것들만 알아보자. 1. tags라우팅 데코레이터 중 tags라는 속성은 문서에서 엔드 포인트들을 직접설정해서 하나의 그룹으로 묶기 위한 속성이다.이는 실제 프로그램의 실행에는 전혀 관계 없이 OpenAPI/Swagger UI 문서에 해당 메서드 들을 그룹으로 묶기 위함이다. 이렇게 메서드가 선언되어 있을때 문서에는이런식으로 모든 메서드가 구분없이 단일로 출력되게 되어 있다. 여기서 라우팅 데코레이터에 tags로 str로 된 단일 배열로 user에 대한건 "user"로 admin에 대한건 "admin"으로 설정해주면이렇게 해당 메서드가 어떤 ..
2025.09.02 -
FastAPI - Exception
API는 성공에 대해서 뿐만 아니라 실패에 대해서도 알려줘야만 한다.이를 위해서 보통의 언어들에서는 모두 Exception에 대한 처리가 필요하다 이걸 FastAPI 프레임 워크에서는 어떻게 처리하는지에 대해서 한번 알아보자. 1. Exception먼저 FastAPI에서는 이 Exception을 처리하기 위해서 HTTPException이라는 모듈을 제공한다.먼저 HTTPException을 import 하고 함수를 하나 만들고 파라미터 id를 하나 받아보자.여기서 이 함수에서 id라는 값이 무조건 필요하다면 혹은 id가 0일 경우는 에러라고 알리고 싶다면 이에 대한 분기조건을 하나 만들어준다.여기서 raise를 통해서 HTTPException을 불러주고 이제 이 HTTPException 내부에 status..
2025.09.02 -
FastAPI - Form Data 받기
jsp를 쓰는 경우는 Form Data를 받는 형태로 구성해서 사용자의 데이터를 받아 저장하는 형태로 패턴을 형성하고 있다.거기서 Spring을 쓰는 경우는 대부분 위와 같은 방식으로 처리하는 걸로 기억하는데 FastAPI에서도 application/x-www-form-urlencoded 혹은 multipart/form-data로 오는 요청을 받을때 이를 처리하기 위한 Form()이 존재한다 1. Form()의 사용먼저 Form은 fastapi 내부에 존재하며 요청을 받았을때 어디서 값을 읽어야할지 지정해줘야하기 때문에 typing에서 Annotated를 추가해줘야 한다.그리고 로그인 정보를 form으로 받아서 이를 사용하는 메서드를 하나 만들어보자면 일단이렇게 선언하고 그리고 사용자의 정보를 매개변수에..
2025.09.01 -
FastAPI - 응답모델
Fast API의 라우트 데코레이터(@app.post("/mian") 이 부분)에는 response_model이라는 것이 있는데 이는 스키마를 고정하고 Swagger UI에 문서화로 설정해서 클라이언트가 응답의 형태를 예측할 수 있도록 해주고, 런타임 시점에 핸들러가 타입을 변경해서 반환을 해도 지정한 모델로 검증 및 변환해서 반환하고 모델에 작성되지 않은 필드는 자동으로 제거 해줌으로써 응답을 원하는대로 제한해서 전달할 수 있게 된다. 1. response_model의 사용우선 모델 하나를 생성해주고이걸 함수의 매개변수로 넣어주자.그리고 라우트 데코레이터에 response_model을 넣어주고 그 값으로 모델 타입을 넣어주면이러면 설정이 끝난다 2. 응답의 제한위의 상태에서 password를 뺀 새로운..
2025.09.01 -
FastAPI - example
사용자가 어떤 값을 보내야하는지를 확인하려면 Swagger UI와 같은 문서를 통해서 확인이 가능할 것이다.그런데 구체적으로 값을 어떤형태로 어떻게 구성을 해야지 서버측에서 정상적으로 값을 받는지를 알아야지만 보내기 수월할 것이다이때 사용되는것이 example이다1. example이렇게 모델이 선언되어 있을때 model_config의 값으로 json_schema_extra의 값에 example값을 넣고 그 내부에 예시가 될만한 형태의 값을 넣어주면 된다예시를 보여주자면이런식으로 설정하면 된다. 그리고 이제 함수 하나를 생성해서 맵핑을 해주면 Swagger UI의 Schemas에 모델 아래에 Example을 확인할 수 있다. 2. 모델의 요소에 직접 다는 example위는 전체 모델에 대한 example이..
2025.08.29 -
FastAPI - 모델의 중첩
현실의 구조를 표현하기 위해서는 여러 연관되는 물건들이 서로간의 연결 혹은 포함의 관계를 가지고 있는데 이를 코드를 치다보면 어떤 자료형을 통해서 어떤 방식으로 연결을 만들어 낼지에 대해서 고민을 많이 하게 된다. 그중에서 자바의 경우는 List 내부에 Map이 들어 있다거나 List 내부에 우리가 직접 만들어 둔 VO 혹은 DTO를 넣어 같은 타입의 다수의 객체가 하나의 범주안에서 존재해야하는 경우들이 있는데 Fast API는 그와 같은 과정으로 모델간의 중첩을 만들어 이를 구현한다. 모델의 중첩을 이야하기 하기 이전에 먼저 가변 타입들에 대해서 설명해보자.list, dict, set 등의 가변 타입의 경우는 어떤 타입의 값이던 내부에 저장이 가능하다.그렇기에 원하는 타입의 형태만 받기 위해서는 내부 ..
2025.08.29