msaSDK - 基於 FastAPI 的微服務架構開發套件
快速、一致地建立具有 CRUD 和儀表板的 PoC、MVP、API。
建構在 FastAPI、SQLModel、SQLAlchemy、Amis 和許多其他防彈庫之上。
文件:MSA SDK 文件 (http://msa.u2d.ai/)
更快建立連接的分散式應用程式:為 Dapr 做好準備。
一致性:有時需要數十或數百個微服務,SDK 有助於輕鬆進行版本控制並提供穩定的 Dapr 基礎。
高性能:基於FastAPI。享受所有好處。
整合調度程序:使用自然語言計時和相依性定義調度程序任務。
整合儀表板 UI :具有 CRUD 表單的管理和可選身份驗證啟用儀表板。
整合 CRUD :基於 SQLModel 和 SQLAlchemy 產生 CRUD 路由器和管理儀表板表單。
整合抽象檔案系統:不可知的抽象檔案系統 API,允許使用 S3、GCS、Azure Datalake、本地 FS、Youtube 等。
整合 justpy WEB UI :將 justpy UI Web 框架整合到 MSAAPI,允許簡單地將路由新增至 justpy 網頁功能。
與儲存後端整合的 Dict :將 Dict 與後端儲存(如 redis)一起使用。
整合訊號:使用和處理訊號和任務。
整合功能管理:有條件的功能切換管理。
快速API
SQLModel 與 SQLAlchemy 和 Pydantic 結合,具有它們的所有功能。
msaUtils :基於 FastAPI 的微服務通用工具,如 Profiler、Scheduler、Sysinfo、Healtcheck、Error Handling 等。
msaJustPyUI :FastAPI 改編了 JustPy 版本,用於將 justpy UI Web 框架整合到 msaAppService,這允許簡單地將路由新增至 justpy 網頁功能。
msaCRUD :SQLModel/SQLAlchemy/FastAPI - 資料庫物件 CRUD/API 自動化
msaFeature :有條件的功能開關管理
msaServer :Uvicorn/Gunicorn 的幫助程式和包裝器,用於基於 FastAPI 的應用程式
msaSignal :Starlette/FastAPI 的訊號/事件。
msaDocModels : # MSA Document Pydantic 模型和架構,用於儲存處理文件的解析器、NLP、NLU 和 AI 結果
msaStorageDict :具有儲存後端(如 redis 或 Zookeeper)的字典
# -*- 編碼:utf-8 -*-"""版權所有(c) 2022 - U2D.ai / S.Welcker"""fromtypes 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):0m.器同步5 秒" )class TestArticle(SQLModel, table=True):__table_args__ = {'extend_existing': True}id: 可選[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(None, title='status ')content: str = Field (title='ArticleContent')class TestCategory(SQLModel, table=True):__table_args__ = {'extend_existing': True}id: 可選[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(None, title='status' )content: str = Field(title='ArticleContent')get_msa_app_settings.cache_clear()settings = get_msa_app_settings()settings.title = "u2d.ai - MSA/SDK’settings. "0.0.1"settings.debug = Trueapp = MSAApp(settings=settings, 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("啟動" )async defstartup():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,如果您在此處遇到一些錯誤,請指出。檢查那裡的文檔。安裝是 msaSDK 的一部分,所以這應該沒問題。
我們現在可以使用以下方法測試和查看我們的文件:
mkdocs serve
建立靜態站點:
mkdocs build
建造:
python setup.py sdist
發佈到 pypi:
twine upload dist/*