msaSDK: kit de desarrollo de arquitectura de microservicio basado en FastAPI
Construir PoC's, MVP's, API's con CRUD y Dashboards de forma rápida y consistente.
Construya sobre FastAPI, SQLModel, SQLAlchemy, Amis y muchas otras bibliotecas a prueba de balas.
Documentación : Documentación del SDK de MSA (http://msa.u2d.ai/)
Cree aplicaciones distribuidas conectadas más rápido : listo para Dapr.
Consistencia : a veces con decenas o cientos de microservicios, el SDK ayuda a facilitar el control de versiones y proporciona una base Dapr estable.
Alto rendimiento : Basado en FastAPI. Disfruta de todos los beneficios.
Programador integrado : defina tareas del programador con tiempos y dependencias en lenguaje natural.
Interfaz de usuario del panel integrado : panel habilitado para administración y autenticación opcional con formularios CRUD.
CRUD integrado : genera formularios de panel de administración y enrutador CRUD basados en SQLModel y SQLAlchemy.
Sistema de archivos abstracto integrado : API de sistema de archivos abstracto agnóstico que permite utilizar S3, GCS, Azure Datalake, su FS local, Youtube, etc.
UI WEB de justpy integrada : marco web de UI de justpy integrado en MSAAPI, que permite agregar rutas a las funciones de las páginas web de justpy de manera sencilla.
Dict integrado con almacenamiento backend : use Dict con almacenamiento backend como redis.
Señales Integradas : Utilizar y manejar Señales y Tareas.
Gestión de funciones integrada : gestión de cambios de funciones con condiciones.
API rápida
SQLModel combinado con SQLAlchemy y Pydantic, con todas sus características.
msaUtils : utilidades generales para microservicios basados en FastAPI como Profiler, Scheduler, Sysinfo, Healtcheck, Error Handling, etc.
msaJustPyUI : versión de JustPy adaptada por FastAPI para la integración de justpy UI Web Framework en msaAppService, que permite agregar rutas a funciones de páginas web de justpy de forma sencilla.
msaCRUD : SQLModel/SQLAlchemy/FastAPI - Automatización CRUD/API de objetos de base de datos
msaFeature : Gestión de interruptores de funciones con condiciones
msaServer : asistente y contenedor de Uvicorn/Gunicorn para aplicaciones basadas en FastAPI
msaSignal : Señales/Eventos para Starlette/FastAPI.
msaDocModels : # Modelos y esquemas de Pydantic de documentos de MSA, utilizados para almacenar resultados de Parser, NLP, NLU e AI para documentos procesados.
msaStorageDict : dicta con un backend de almacenamiento como redis o Zookeeper
# -*- codificación: utf-8 -*-"""Copyright (c) 2022 - U2D.ai / S.Welcker"""desde escribir import Opcional, Lista desde sqlmodel importar SQLModel desde msaSDK.admin.utils.fields importar campo desde msaSDK .models.service importar get_msa_app_settingsfrom msaSDK.service importar 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': Verdadero}id: Opcional[int] = Campo(predeterminado=Ninguno, clave_primaria = Verdadero, nulo = Falso) título: cadena = Campo (título = 'Título del artículo', longitud máxima = 200) descripción: Opcional [cadena] = Campo (predeterminado = '', título = 'Descripción del artículo', longitud máxima = 400) estado: bool = Campo(Ninguno, título='estado')contenido: str = Campo(título='Contenido del artículo')clase Categoría de prueba(SQLModel, table=True):__table_args__ = {'extend_existing': True}id: Opcional[int] = Campo(predeterminado=Ninguno, clave_primaria=True, nullable=False)título: str = Campo(título='ArticleTitle', max_length=200 )descripción: Opcional[cadena] = Campo(default='', title='ArticleDescription', max_length=400)estado: bool = Campo(Ninguno, título='estado')contenido: str = Campo(título='Contenido del artículo')get_msa_app_settings.cache_clear()settings = get_msa_app_settings()settings.title = "u2d.ai - MSA/SDK MVP"settings. versión = "0.0.1"settings.debug = Trueapp = MSAApp(configuración=configuración, auto_mount_site=True, sql_models=[TestArticle, TestCategory], contact={"name": "msaSDK", "url": "http://u2d.ai", "email": "stefan@ u2d.ai"}, licencia_info={"nombre": "MIT", "url": "https://opensource.org/licenses/MIT", })app.scheduler.task("cada 1 min", func=test_timer_min )app.scheduler.task("cada 5 segundos", func=test_timer_five_sec )app.logger.info("Inicializado " + settings.title + " " + configuración.versión)@app.on_event("inicio")async def startup():app.logger.info("msaSDK Own Startup MSAUIEvent")#app.mount_site()@app.on_event("shutdown")async def apagado():app.logger.info("msaSDK Own Shutdown MSAUIEvent" )si __nombre__ == '__principal__':pasar
Abra http://127.0.0.1:8090/admin/
en su navegador:
Abra http://127.0.0.1:8090/admin/auth/form/login
en su navegador:
Abra http://127.0.0.1:8090/#/admin/docs
en su navegador:
Abra http://127.0.0.1:8090/#/admin/profiler
en su navegador:
msaSDK
Basado en código abierto MIT
y de uso gratuito, es gratuito para uso comercial, pero muestre/enumere la información de derechos de autor sobre msaSDK en algún lugar.
Usamos mkdocs y mkdocsstring. La referencia del código y la entrada de navegación se crean virtualmente mediante el script de Python activado /docs/gen_ref_pages.py mientras se ejecuta mkdocs
serve
o build
.
PDF Export utiliza principalmente weasyprint, si obtiene algunos errores aquí, por favor. consulte allí la documentación. La instalación es parte del msaSDK, por lo que debería estar bien.
Ahora podemos probar y ver nuestra documentación usando:
mkdocs serve
Construir sitio estático:
mkdocs build
Construir:
python setup.py sdist
Publicar en pypi:
twine upload dist/*