msaSDK – FastAPI-basiertes Microservice-Architektur-Entwicklungskit
PoCs, MVPs, APIs mit CRUD und Dashboards schnell und konsistent erstellen.
Bauen Sie auf FastAPI, SQLModel, SQLAlchemy, Amis und vielen anderen kugelsicheren Bibliotheken auf.
Dokumentation : MSA SDK-Dokumentation (http://msa.u2d.ai/)
Erstellen Sie vernetzte verteilte Anwendungen schneller : Bereit für Dapr.
Konsistenz : Mit manchmal 10 oder 100 Mikrodiensten hilft das SDK bei der einfachen Versionskontrolle und bietet eine stabile Dapr-Basis.
Hohe Leistung : Basierend auf FastAPI. Genießen Sie alle Vorteile.
Integrierter Scheduler : Definieren Sie Scheduler-Aufgaben mit natürlichen Sprachzeiten und Abhängigkeiten.
Integrierte Dashboard-Benutzeroberfläche : Admin- und optionales Auth-fähiges Dashboard mit CRUD-Formularen.
Integriertes CRUD : Generiert CRUD-Router- und Admin-Dashboard-Formulare basierend auf SQLModel und SQLAlchemy.
Integriertes abstraktes Dateisystem : Agnostische abstrakte Dateisystem-API, die die Verwendung von S3, GCS, Azure Datalake, Ihrem lokalen FS, Youtube usw. ermöglicht.
Integrierte Justpy-WEB-Benutzeroberfläche : Integriertes Justpy-UI-Web-Framework in MSAAPI, das das einfache Hinzufügen von Routen zu Justpy-Webseitenfunktionen ermöglicht.
Integriertes Dict mit Speicher-Backend : Verwenden Sie Dicts mit Backend-Speicher wie Redis.
Integrierte Signale : Signale und Aufgaben nutzen und handhaben.
Integriertes Feature-Management : Feature-Switch-Management mit Bedingungen.
FastAPI
SQLModel kombiniert mit SQLAlchemy und Pydantic, mit all ihren Funktionen.
msaUtils : Allgemeine Dienstprogramme für Microservices basierend auf FastAPI wie Profiler, Scheduler, Sysinfo, Healtcheck, Fehlerbehandlung usw.
msaJustPyUI : FastAPI-angepasste JustPy-Version für die Integration des Justpy-UI-Web-Frameworks in msaAppService, die das einfache Hinzufügen von Routen zu Justpy-Webseitenfunktionen ermöglicht.
msaCRUD : SQLModel/SQLAlchemy/FastAPI – DB-Objekt CRUD/API-Automatisierung
msaFeature : Funktionsschalterverwaltung mit Bedingungen
msaServer : Helfer und Wrapper rund um Uvicorn/Gunicorn für FastAPI-basierte Apps
msaSignal : Signale/Ereignisse für Starlette/FastAPI.
msaDocModels : # MSA Document Pydantic Models and Schemas, die zum Speichern von Parser-, NLP-, NLU- und AI-Ergebnissen für verarbeitete Dokumente verwendet werden
msaStorageDict : Dict mit einem Storage-Backend wie Redis oder Zookeeper
# -*- Kodierung: utf-8 -*-"""Copyright (c) 2022 - U2D.ai / S.Welcker"""from typing import Optional, 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 Test Timer Async Every Minute")def test_timer_five_sec():app.logger.info("msaSDK Test Timer Sync 5 Second")class TestArticle(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: Optional[str] = Field(default='', title='ArticleDescription', max_length=400)status: bool = Field( Keine, 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: Optional[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 MVP"settings.version = "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("alle 1 Minute", func=test_timer_min )app.scheduler.task("alle 5 Sekunden", func=test_timer_five_sec )app.logger.info("Initialized " + Settings.title + " " + Settings.version)@app.on_event("startup")async def Startup ():app.logger.info("msaSDK Own Startup MSAUIEvent")#app.mount_site()@app.on_event("shutdown")async def Shutdown():app.logger.info("msaSDK Own Shutdown MSAUIEvent")if __name__ == '__main__':pass
Öffnen Sie http://127.0.0.1:8090/admin/
in Ihrem Browser:
Öffnen Sie http://127.0.0.1:8090/admin/auth/form/login
in Ihrem Browser:
Öffnen Sie http://127.0.0.1:8090/#/admin/docs
in Ihrem Browser:
Öffnen Sie http://127.0.0.1:8090/#/admin/profiler
in Ihrem Browser:
msaSDK
basiert auf MIT
Open-Source und kann kostenlos verwendet werden. Die kommerzielle Nutzung ist kostenlos. Bitte zeigen/listen Sie die Copyright-Informationen zu msaSDK irgendwo auf.
Wir verwenden mkdocs und mkdocsstring. Die Codereferenz und der Navigationseintrag werden virtuell durch das ausgelöste Python-Skript /docs/gen_ref_pages.py erstellt, während mkdocs
serve
oder build
ausgeführt wird.
Beim PDF-Export wird hauptsächlich Weasyprint verwendet. Wenn hier Fehler auftreten, wenden Sie sich bitte an uns. Überprüfen Sie die Dokumentation. Die Installation ist Teil des msaSDK, daher sollte dies in Ordnung sein.
Wir können unsere Dokumentation jetzt testen und anzeigen mit:
mkdocs serve
Erstellen Sie eine statische Site:
mkdocs build
Bauen:
python setup.py sdist
Auf Pypi veröffentlichen:
twine upload dist/*