msaSDK - Kit de desenvolvimento de arquitetura de microsserviços baseado em FastAPI
Construir PoC's, MVP's, API's com CRUD e Dashboards de forma rápida e consistente.
Construa com base em FastAPI, SQLModel, SQLAlchemy, Amis e muitas outras bibliotecas à prova de balas.
Documentação : Documentação do MSA SDK (http://msa.u2d.ai/)
Crie aplicativos distribuídos conectados com mais rapidez : pronto para Dapr.
Consistência : às vezes com dezenas ou centenas de micro serviços, o SDK ajuda a facilitar o controle de versão e fornece uma base Dapr estável.
Alto desempenho : Baseado em FastAPI. Aproveite todos os benefícios.
Agendador integrado : defina tarefas do agendador com tempos e dependências de linguagem natural.
UI do painel integrado : painel habilitado para administração e autenticação opcional com formulários CRUD.
CRUD integrado : gera roteador CRUD e formulários de painel de administração com base em SQLModel e SQLAlchemy.
Sistema de arquivos abstrato integrado : API de sistema de arquivos abstrato agnóstico que permite usar S3, GCS, Azure Datalake, seu FS local, Youtube etc.
Justpy WEB UI integrado : Justpy UI Web Framework integrado ao MSAAPI, que permite a adição simples de rotas às funções de páginas da web justpy.
Dict integrado com back-end de armazenamento : use Dict com armazenamento de back-end como redis.
Sinais Integrados : Use e lide com Sinais e Tarefas.
Gerenciamento integrado de recursos : gerenciamento de alternância de recursos com condições.
API rápida
SQLModel combinado com SQLAlchemy e Pydantic, com todas as suas funcionalidades.
msaUtils : utilitários gerais para microsserviços baseados em FastAPI como Profiler, Scheduler, Sysinfo, Healtcheck, Error Handling etc.
msaJustPyUI : versão JustPy adaptada do FastAPI para integração do justpy UI Web Framework ao msaAppService, que permite a adição simples de rotas às funções de páginas da web justpy.
msaCRUD : SQLModel/SQLAlchemy/FastAPI - Objeto de banco de dados CRUD/Automação de API
msaFeature : gerenciamento de alternância de recursos com condições
msaServer : Helper & Wrapper em torno de Uvicorn/Gunicorn para aplicativos baseados em FastAPI
msaSignal : Sinais/Eventos para Starlette/FastAPI.
msaDocModels : # Modelos e esquemas Pydantic de documentos MSA, usados para armazenar resultados de analisador, PNL, NLU e IA para documentos processados
msaStorageDict : Dict com um back-end de armazenamento como redis ou Zookeeper
# -*- codificação: utf-8 -*-"""Copyright (c) 2022 - U2D.ai / S.Welcker"""da digitação import Opcional, Listfrom sqlmodel import SQLModelfrom msaSDK.admin.utils.fields import Fieldfrom msaSDK .models.service importar get_msa_app_settingsfrom msaSDK.service importar MSAAppasync def test_timer_min():app.logger.info("msaSDK Test Timer Assíncrono a cada minuto")def test_timer_five_sec():app.logger.info("msaSDK Test Timer Sync 5 Second")class TestArticle(SQLModel, table=True):__table_args__ = {'extend_existente': True}id: Opcional[int] = Campo(default=Nenhum, Primary_key=True, nullable=False)title: str = Field(title='ArticleTitle', max_length=200)descrição: Opcional[str] = Field(default='', title='ArticleDescription', max_length=400)status: bool = Field( Nenhum, title='status')content: str = Field(title='ArticleContent')class TestCategory(SQLModel, table=True):__table_args__ = {'extend_existent': True}id: Opcional[int] = Field(default=None, Primary_key=True, nullable=False)title: str = Field(title='ArticleTitle', max_length=200)descrição: Opcional[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( configurações = configurações, auto_mount_site = True, sql_models = [TestArticle, TestCategory], contact={"name": "msaSDK", "url": "http://u2d.ai", "email": "[email protected]"}, licence_info={"name": "MIT ", "url": "https://opensource.org/licenses/MIT", })app.scheduler.task("a cada 1 min", func=test_timer_min )app.scheduler.task("a cada 5 segundos", func=test_timer_five_sec )app.logger.info("Inicializado " + settings.title + " " + settings.version)@app.on_event("startup")async def startup ():app.logger.info("msaSDK própria inicialização MSAUIEvent")#app.mount_site()@app.on_event("shutdown")async def shutdown():app.logger.info("msaSDK próprio desligamento MSAUIEvent")if __name__ == '__main__':pass
Abra http://127.0.0.1:8090/admin/
no seu navegador:
Abra http://127.0.0.1:8090/admin/auth/form/login
no seu navegador:
Abra http://127.0.0.1:8090/#/admin/docs
no seu navegador:
Abra http://127.0.0.1:8090/#/admin/profiler
no seu navegador:
msaSDK
Baseado no código aberto MIT
e de uso gratuito, é gratuito para uso comercial, mas mostre/liste as informações de direitos autorais sobre o msaSDK em algum lugar.
Usamos mkdocs e mkdocsstring. A referência de código e a entrada de navegação são criadas virtualmente pelo script python acionado /docs/gen_ref_pages.py enquanto mkdocs
serve
ou build
é executado.
A exportação de PDF está usando principalmente o weasyprint, se você receber alguns erros aqui, por favor. verifique a documentação lá. A instalação faz parte do msaSDK, então tudo bem.
Agora podemos testar e visualizar nossa documentação usando:
mkdocs serve
Construir site estático:
mkdocs build
Construir:
python setup.py sdist
Publicar no pypi:
twine upload dist/*