msaSDK - Kit Pengembangan Arsitektur Layanan Mikro berbasis FastAPI
Untuk membangun PoC, MVP, API dengan CRUD dan Dashboard dengan cepat dan konsisten.
Bangun di atas FastAPI, SQLModel, SQLAlchemy, Amis, dan banyak pustaka antipeluru lainnya.
Dokumentasi : Dokumentasi MSA SDK (http://msa.u2d.ai/)
Bangun aplikasi terdistribusi yang terhubung dengan lebih cepat : Siap untuk Dapr.
Konsistensi : Terkadang dengan 10 atau 100 Layanan Mikro, SDK membantu kontrol versi yang mudah dan menyediakan Basis Dapr yang stabil.
Performa tinggi : Berdasarkan FastAPI. Nikmati semua manfaatnya.
Penjadwal Terintegrasi : Tentukan Tugas Penjadwal dengan pengaturan waktu dan ketergantungan bahasa alami.
UI Dasbor Terintegrasi : Dasbor yang diaktifkan Admin dan Auth Opsional dengan Formulir CRUD.
CRUD Terintegrasi : Menghasilkan Formulir CRUD Router dan Dashboard Admin berdasarkan SQLModel dan SQLAlchemy.
Sistem File Abstrak Terintegrasi : API Sistem File Abstrak Agnostik yang memungkinkan untuk menggunakan S3, GCS, Azure Datalake, FS lokal Anda, Youtube, dll.
UI WEB justpy terintegrasi : Kerangka Web Justpy UI terintegrasi ke MSAAPI, yang memungkinkan penambahan rute dengan mudah ke fungsi halaman web justpy.
Dict Terintegrasi dengan Storage Backend : Gunakan Dict dengan penyimpanan backend seperti redis.
Sinyal Terintegrasi : Menggunakan dan menangani Sinyal dan Tugas.
Manajemen Fitur Terintegrasi : Manajemen peralihan fitur dengan ketentuan.
API Cepat
SQLModel dikombinasikan dengan SQLAlchemy dan Pydantic, dengan semua fiturnya.
msaUtils : Utilitas umum untuk Layanan Mikro berdasarkan FastAPI seperti Profiler, Scheduler, Sysinfo, Healtcheck, Error Handling, dll.
msaJustPyUI : FastAPI mengadaptasi versi JustPy untuk Integrasi Kerangka Web Justpy UI ke msaAppService, yang memungkinkan penambahan rute dengan mudah ke fungsi halaman web justpy.
msaCRUD : SQLModel/SQLAlchemy/FastAPI - Otomatisasi Objek DB CRUD/API
msaFeature : Menampilkan manajemen peralihan dengan ketentuan
msaServer : Helper & Wrapper di sekitar Uvicorn/Gunicorn untuk aplikasi berbasis FastAPI
msaSignal : Sinyal/Peristiwa untuk Starlette/FastAPI.
msaDocModels : # Model dan Skema Pydantic Dokumen MSA, digunakan untuk menyimpan hasil Parser, NLP, NLU dan AI untuk dokumen yang diproses
msaStorageDict : Dikte dengan Backend Penyimpanan seperti redis atau Zookeeper
# -*- pengkodean: utf-8 -*-"""Hak Cipta (c) 2022 - U2D.ai / S.Welcker"""dari mengetik import Opsional, Daftardari sqlmodel import SQLModelfrom msaSDK.admin.utils.fields import Fieldfrom msaSDK .models.service impor get_msa_app_settingsdari msaSDK.layanan impor 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")kelas TestArticle(SQLModel, table=True):__table_args__ = {'extend_Existing': True}id: Opsional[int] = Bidang(default=Tidak ada, primary_key=Benar, nullable=False)judul: str = Bidang(judul='ArticleDescription', max_length=200)deskripsi: Opsional[str] = Bidang(default='', title='ArticleDescription', max_length=400)status: bool = Bidang( Tidak ada, judul='status')isi: str = Bidang(judul='Isi Artikel')kelas TestCategory(SQLModel, tabel=Benar):__table_args__ = {'extend_existence': True}id: Opsional[int] = Bidang(default=Tidak Ada, kunci_utama=Benar, nullable=False)judul: str = Bidang(judul='Judul Artikel', max_length=200 )deskripsi: Opsional[str] = Bidang(default='', title='ArticleDescription', max_length=400)status: bool = Bidang(Tidak ada, judul='status')konten: str = Bidang(judul='ArticleContent')get_msa_app_settings.cache_clear()settings = get_msa_app_settings()settings.title = "u2d.ai - pengaturan MSA/SDK MVP". versi = "0.0.1"settings.debug = Trueapp = MSAApp(pengaturan=pengaturan, auto_mount_site=Benar, 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("setiap 1 menit", func=test_timer_min )app.scheduler.task("setiap 5 detik", func=test_timer_five_sec )app.logger.info("Diinisialisasi " + settings.title + " " + settings.version)@app.on_event("startup") async def startup():app.logger.info("msaSDK Startup Sendiri MSAUIEvent")#app.mount_site()@app.on_event("shutdown")async def shutdown():app.logger.info("msaSDK Shutdown MSAUIEEvent")if __name__ == '__main__':pass
Buka http://127.0.0.1:8090/admin/
di browser Anda:
Buka http://127.0.0.1:8090/admin/auth/form/login
di browser Anda:
Buka http://127.0.0.1:8090/#/admin/docs
di browser Anda:
Buka http://127.0.0.1:8090/#/admin/profiler
di browser Anda:
msaSDK
Berdasarkan sumber terbuka MIT
dan gratis untuk digunakan, ini gratis untuk penggunaan komersial, tetapi harap tampilkan/cantumkan informasi hak cipta tentang msaSDK di suatu tempat.
Kami menggunakan mkdocs dan mkdocsstring. Referensi kode dan entri nav dibuat secara virtual oleh skrip python yang dipicu /docs/gen_ref_pages.py saat mkdocs
serve
atau build
dijalankan.
Ekspor PDF terutama menggunakan weasyprint, jika Anda mendapatkan beberapa kesalahan di sini, mohon. periksa dokumentasi di sana. Instalasi adalah bagian dari msaSDK, jadi ini akan baik-baik saja.
Kami sekarang dapat menguji dan melihat dokumentasi kami menggunakan:
mkdocs serve
Bangun Situs statis:
mkdocs build
Membangun:
python setup.py sdist
Publikasikan ke pypi:
twine upload dist/*