msaSDK - FastAPI 기반 마이크로서비스 아키텍처 개발 키트
CRUD 및 대시보드를 사용하여 PoC, MVP, API를 빠르고 일관되게 구축합니다.
FastAPI, SQLModel, SQLAlchemy, Amis 및 기타 다양한 방탄 라이브러리를 기반으로 구축하세요.
문서 : MSA SDK 문서 (http://msa.u2d.ai/)
더 빠르게 연결된 분산 애플리케이션 구축 : Dapr을 위한 준비.
일관성 : 때로는 수십, 수백 개의 마이크로 서비스가 있는 경우 SDK를 사용하면 버전 관리가 용이하고 안정적인 Dapr Basis를 제공할 수 있습니다.
고성능 : FastAPI 기반. 모든 혜택을 누리세요.
통합 스케줄러 : 자연어 타이밍 및 종속성을 사용하여 스케줄러 작업을 정의합니다.
통합 대시보드 UI : CRUD 양식이 포함된 관리 및 선택적 인증 지원 대시보드.
통합 CRUD : SQLModel 및 SQLAlchemy를 기반으로 CRUD 라우터 및 관리 대시보드 양식을 생성합니다.
통합 추상 파일 시스템 : S3, GCS, Azure Datalake, 로컬 FS, YouTube 등을 사용할 수 있는 불가지론적 추상 파일 시스템 API입니다.
통합된 justpy WEB UI : MSAAPI에 통합된 justpy UI 웹 프레임워크를 통해 justpy 웹페이지 기능에 대한 경로를 간단하게 추가할 수 있습니다.
스토리지 백엔드와 통합 Dict : Redis와 같은 백엔드 스토리지와 함께 Dict를 사용합니다.
통합 신호 : 신호 및 작업을 사용하고 처리합니다.
통합 기능 관리 : 조건에 따른 기능 스위치 관리.
FastAPI
SQLModel은 SQLAlchemy 및 Pydantic과 결합되어 모든 기능을 제공합니다.
msaUtils : Profiler, Scheduler, Sysinfo, Healtcheck, Error Handling 등과 같은 FastAPI 기반 마이크로서비스용 일반 유틸리티입니다.
msaJustPyUI : FastAPI는 justpy UI 웹 프레임워크를 msaAppService에 통합하기 위해 JustPy 버전을 채택했습니다. 이를 통해 justpy 웹 페이지 기능에 대한 경로를 간단하게 추가할 수 있습니다.
msaCRUD : SQLModel/SQLAlchemy/FastAPI - DB 개체 CRUD/API 자동화
msaFeature : 조건에 따른 기능 스위치 관리
msaServer : FastAPI 기반 앱용 Uvicorn/Gunicorn 관련 도우미 및 래퍼
msaSignal : Starlette/FastAPI용 신호/이벤트.
msaDocModels : # 처리된 문서에 대한 파서, NLP, NLU 및 AI 결과를 저장하는 데 사용되는 MSA 문서 Pydantic 모델 및 스키마
msaStorageDict : redis 또는 Zookeeper와 같은 스토리지 백엔드가 있는 사전
# -*- 인코딩: utf-8 -*-"""저작권 (c) 2022 - U2D.ai / S.Welcker"""from looking import 선택 사항, Listfrom sqlmodel import SQLModelfrom msaSDK.admin.utils.fields import Fieldfrom msaSDK .models.service import get_msa_app_settingsfrom msaSDK.service import MSAAppasync def test_timer_min():app.logger.info("msaSDK 테스트 타이머 비동기 매분")def test_timer_five_sec():app.logger.info("msaSDK 테스트 타이머 동기화 5초")class TestArticle(SQLModel, table=True):__table_args__ = {'extend_existing': True}id: 선택사항[int] = Field(기본값=없음, Primary_key=True, nullable=False)title: str = Field(title='ArticleTitle', max_length=200)description: Optional[str] = Field(default='', title='ArticleDescription', max_length=400)status: bool = Field( 없음, title='status')content: str = Field(title='ArticleContent')class TestCategory(SQLModel, table=True):__table_args__ = {'extend_existing': True}id: Optional[int] = Field(default=None, Primary_key=True, nullable=False)title: str = Field(title='ArticleTitle', max_length=200 )description: 선택사항[str] = Field(default='', title='ArticleDescription', max_length=400)status: bool = Field(없음, title='status')content: str = Field(title='ArticleContent')get_msa_app_settings.cache_clear()settings = get_msa_app_settings()settings.title = "u2d.ai - MSA/SDK MVP"settings.version = "0.0.1"settings.debug = Trueapp = MSAApp(설정=설정, auto_mount_site=True, sql_models=[TestArticle, TestCategory], contact={"name": "msaSDK", "url": "http://u2d.ai", "email": "[email protected]"}, License_info={" name": "MIT", "url": "https://opensource.org/licenses/MIT", })app.scheduler.task("1분마다", func=test_timer_min )app.scheduler.task("5초마다", func=test_timer_five_sec )app.logger.info("초기화됨" + settings.title + " " + settings.version)@app.on_event("startup") async def start():app.logger.info("msaSDK 자체 시작 MSAUIEvent")#app.mount_site()@app.on_event("shutdown")async def shutdown():app.logger.info("msaSDK 자체 종료 MSAUIEvent")if __name__ == '__main__':pass
브라우저에서 http://127.0.0.1:8090/admin/
엽니다.
브라우저에서 http://127.0.0.1:8090/admin/auth/form/login
엽니다.
브라우저에서 http://127.0.0.1:8090/#/admin/docs
엽니다.
브라우저에서 http://127.0.0.1:8090/#/admin/profiler
엽니다.
msaSDK
MIT
오픈소스를 기반으로 하며 무료로 사용할 수 있으며 상업적인 용도로는 무료이지만 msaSDK에 대한 저작권 정보를 어딘가에 표시/목록에 표시해 주세요.
우리는 mkdocs와 mkdocsstring을 사용합니다. 코드 참조 및 탐색 항목은 mkdocs
serve
또는 build
실행되는 동안 트리거된 Python 스크립트 /docs/gen_ref_pages.py에 의해 가상으로 생성됩니다.
PDF 내보내기는 주로 weasyprint를 사용합니다. 여기서 오류가 발생하면 pls. 거기 문서를 확인하세요. 설치는 msaSDK의 일부이므로 괜찮습니다.
이제 다음을 사용하여 문서를 테스트하고 볼 수 있습니다.
mkdocs serve
정적 사이트 구축:
mkdocs build
짓다:
python setup.py sdist
pypi에 게시:
twine upload dist/*