metosin/malli
این یک کتابخانهٔ قدرتمند و با کارایی بالا برای تعریف و اعتبارسنجی دادهها در زبانهای Clojure و ClojureScript است.
کاربرد:
با استفاده از malli میتونی ساختار دادهها رو به صورت شفاف و قابل بازیابی تعریف کنی، بدون نیاز به مدلهای سختگیرانه یا کلاسهای از پیش تعریف شده. این کتابخانه بهت کمک میکنه دادهها رو اعتبارسنجی کنی، تبدیلشون کنی، مستندسازی کنی و حتی اسکیمای JSON یا Swagger تولید کنی.
در چه شرایطی بهتره استفاده شود؟
وقتی کار با دادههای ساختاریافته داری، مثل APIهای وب، فرمهای کاربری، پردازش پیامها یا ذخیرهسازی در پایگاه داده. وقتی میخوای بدون وابستگی به کلاس یا schema خارجی، دادهها رو به صورت کد تعریف کنی، malli گزینهٔ عالیایه.
چند مثال از موارد استفاده:
- تعریف schema برای بدنهٔ درخواست API و اعتبارسنجی اون در Ring یا http-kit.
- اعتبارسنجی ورودی فرمها در برنامههای Reagent یا Re-frame.
- تولید خودکار اسکیمای OpenAPI یا JSON Schema از تعاریف داخل کد.
- تبدیل دادههای ورودی به فرمت مورد نیاز (مثلاً string به keyword).
- تست کردن ساختار دادهها در یونیت تستها.
- ##data
- ##clojure
- ##schema
- ##malli
- ##web
- ##functional
- ##api
- ##re
- ##json
