본문 바로가기

API49

FastAPI와 Pydantic을 활용한 데이터 유효성 검사, 자동 문서 생성 FastAPI와 Pydantic을 사용하여 API 문서 작성 및 데이터 검증을 수행하는 방식에 대해 자세히 설명하겠습니다. FastAPI 소개 FastAPI는 Python으로 빠르게 API를 개발할 수 있는 현대적이고 성능 우수한 웹 프레임워크입니다. ASGI(Asynchronous Server Gateway Interface)를 기반으로 하며, 비동기 및 동기 코드를 지원합니다. Pydantic 소개 Pydantic은 데이터 검증 및 직렬화를 위한 Python 라이브러리입니다. 타입 힌트를 사용하여 데이터 모델을 정의하고, 해당 모델을 사용하여 데이터의 유효성을 검사하거나 JSON과 같은 형식으로 직렬화할 수 있습니다. FastAPI와 Pydantic의 통합 FastAPI는 Pydantic 모델을 사용.. 2024. 1. 12.
PostgreSQL 스키마를 기반으로 PostgREST 통해 API 자동화 생성 PostgREST가 무엇인지 먼저 생각해 봅시다. 현대의 데이터베이스 애플리케이션은 일반적으로 직접 데이터베이스에 연결하여 임의의 SQL 명령을 내리지 않습니다. 일반적으로 그 사이에 어떤 추상화 계층이 항상 존재합니다. 이 계층은 Hibernate 코드 또는 어떤 종류의 API가 될 수 있습니다. 문제는 API를 수작업으로 작성하는 것이 많은 작업이며 귀찮다는 것입니다. 일반적으로 데이터베이스에는 이미 대부분의 정보가 있습니다(필드, 데이터 유형 등). 그러나 수동으로 API를 작성하면 본질적으로 데이터베이스가 이미 알고 있는 것을 중복하게 됩니다. PostgREST는 전혀 다른 접근 방식입니다. 이는 데이터베이스 시스템 카탈로그를 검사하고 데이터베이스에서 API를 자동으로 생성합니다. 충분한 권한이 .. 2024. 1. 9.
Webmin API 통해 다양한 모듈 정보를 수집하여 통합관리 Webmin은 웹 기반의 시스템 관리 도구로, API를 통해 다양한 기능을 사용할 수 있습니다. 아래는 Webmin API를 사용하는 방법에 대한 간략한 설명입니다. 주어진 예시는 주로 웹서버에서 Perl 스크립트를 사용하는 것을 전제로 합니다. Webmin::API Perl 모듈 설치 Webmin::API Perl 모듈은 Webmin API를 사용하기 위한 도구입니다. 다음은 이 모듈을 설치하는 단계입니다. # Webmin::API Perl 모듈 다운로드 wget https://download.webmin.com/download/modules/Webmin-API-1.0.tar.gz # 압축 해제 및 설치 tar xvzf Webmin-API-1.0.tar.gz cd Webmin-API perl Makef.. 2024. 1. 7.
API와 DB 구축에 복잡한 설정을 Supabase로 관리 최소화 Supabase는 데이터베이스와 인증, 리얼타임 기능을 포함한 서버리스 백엔드 서비스를 제공하는 오픈 소스 플랫폼입니다. Supabase는 PostgreSQL을 기반으로 하며, 프론트엔드와 통합하여 개발자가 빠르게 웹 애플리케이션을 개발할 수 있도록 도와줍니다. 또한 Supabase는 Elixir 언어로 작성된 Phoenix 웹 프레임워크를 기반으로 하고 있습니다. Supabase의 핵심 기능은 다음과 같습니다. PostgreSQL 데이터베이스: Supabase는 강력하고 확장 가능한 PostgreSQL 데이터베이스를 기반으로 합니다. 실시간 데이터: Supabase는 실시간 데이터 동기화를 제공하여 데이터베이스의 변경 사항을 실시간으로 프론트엔드에 반영할 수 있습니다. 인증 및 사용자 관리: 사용자 인.. 2023. 12. 28.
MinIO 서비스 서브URL 또는 서브도메인 프록시 설정 MinIO 서버 API 및 콘솔에 대한 두 가지 모델이 있습니다. MinIO 서비스를 위한 전용 DNS 이름을 만들거나 구성합니다. MinIO 서버 S3 API에 대한 요청은 해당 도메인의 루트로 프록시합니다. MinIO 콘솔 웹 GUI에 대한 요청은 /minio 하위 경로로 프록시합니다. 예를 들어, 호스트 이름이 minio.example.net 이라면 https://minio.example.net 으로 루트(/) 요청을 MinIO 서버(https://minio.local:9000)로 프록시합니다. https://minio.example.net/minio/ui 로 요청을 MinIO 콘솔(https://minio.local:9090)로 프록시합니다. 다음은 고유한 환경에 대한 추가적인 사용자 정의를 위한.. 2023. 12. 24.