msaSDK — комплект разработки микросервисной архитектуры на основе FastAPI
Быстро и последовательно создавать PoC, MVP, API с CRUD и Dashboards.
Используйте FastAPI, SQLModel, SQLAlchemy, Amis и многие другие надежные библиотеки.
Документация : Документация MSA SDK (http://msa.u2d.ai/).
Ускорьте создание подключенных распределенных приложений : готовность к Dapr.
Согласованность : иногда с 10 или 100 микросервисами SDK помогает упростить контроль версий и обеспечивает стабильную базу Dapr.
Высокая производительность : на основе FastAPI. Наслаждайтесь всеми преимуществами.
Встроенный планировщик : определение задач планировщика с указанием времени и зависимостей на естественном языке.
Интегрированный пользовательский интерфейс информационной панели : панель мониторинга с поддержкой администратора и дополнительной аутентификации с формами CRUD.
Интегрированный CRUD : генерирует формы маршрутизатора CRUD и панели администратора на основе SQLModel и SQLAlchemy.
Интегрированная абстрактная файловая система : агностический API абстрактной файловой системы, который позволяет использовать S3, GCS, Azure Datalake, вашу локальную файловую систему, Youtube и т. д.
Интегрированный веб-интерфейс justpy : интегрированная веб-инфраструктура пользовательского интерфейса justpy в MSAAPI, которая позволяет легко добавлять маршруты к функциям веб-страниц justpy.
Интеграция Dict с внутренним хранилищем : используйте Dict с внутренним хранилищем, например Redis.
Интегрированные сигналы : используйте и обрабатывайте сигналы и задачи.
Интегрированное управление функциями : управление переключением функций с учетом условий.
ФастAPI
SQLModel в сочетании с SQLAlchemy и Pydantic со всеми их функциями.
msaUtils : общие утилиты для микросервисов на основе FastAPI, таких как Profiler, Scheduler, Sysinfo, Healtcheck, обработка ошибок и т. д.
msaJustPyUI : FastAPI адаптировал версию JustPy для интеграции веб-платформы justpy UI в msaAppService, что позволяет просто добавлять маршруты к функциям веб-страниц justpy.
msaCRUD : SQLModel/SQLAlchemy/FastAPI — автоматизация объектов БД CRUD/API
msaFeature : управление переключением функций с условиями.
msaServer : помощник и оболочка вокруг Uvicorn/Gunicorn для приложений на основе FastAPI.
msaSignal : сигналы/события для Starlette/FastAPI.
msaDocModels : # Модели и схемы MSA Document Pydantic, используемые для хранения результатов анализаторов, NLP, NLU и AI для обработанных документов.
msaStorageDict : Dict с серверной частью хранилища, такой как Redis или Zookeeper.
# -*- кодировка: utf-8 -*-"""Авторские права (c) 2022 – U2D.ai/S.Welcker"""из ввода 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] = Поле (по умолчанию = Нет, 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')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] = Поле(default='', title='ArticleDescription', max_length=400)статус: 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("каждые 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. Ссылка на код и запись навигации создаются виртуально с помощью запускаемого скрипта Python /docs/gen_ref_pages.py во время serve
или build
mkdocs
.
Для экспорта PDF используется в основном weasyprint. Если вы обнаружите здесь какие-либо ошибки, пожалуйста, свяжитесь с нами. проверьте там документацию. Установка является частью msaSDK, так что все будет в порядке.
Теперь мы можем протестировать и просмотреть нашу документацию, используя:
mkdocs serve
Создайте статический сайт:
mkdocs build
Строить:
python setup.py sdist
Опубликовать в pypi:
twine upload dist/*