قوانین DorApi
DorApi باید با contract روشن برای field، populate، filter، sort و pagination استفاده شود.
Fields
- fieldهای قابل انتخاب باید whitelist شوند
- field حساس نباید قابل درخواست باشد
- field حذفشده باید backward compatibility را بررسی کند
Populate
- relationهای قابل populate باید محدود باشند
- populate عمیق بدون نیاز ممنوع است
- احتمال N+1 باید بررسی شود
Filters
- فقط filterهای مجاز فعال شوند
- type هر filter مشخص باشد
- filter روی ستونهای سنگین باید index یا strategy داشته باشد
Sorts
- sort فقط روی fieldهای whitelist شده مجاز است
- sort پیشفرض باید deterministic باشد
- sort روی relation باید query plan بررسی شود
Pagination
- pagination اجباری است
- max per page باید محدود شود
- export حجیم باید مسیر جداگانه داشته باشد