Router
ثبت APIهای کلاسمحور با [Route] در C#
نمای کلی
یک زیرکلاس FusionBaseApi را با [Route(...)] annotate کنید، سپس قبل از Listen() متد Route.Register<T>() یا Route.RegisterAll(assembly) را صدا بزنید.
[Route("api/[module]/{id}", Tags = new[] { "items" }, Desc = "Items by id")]
public class ItemModule : FusionBaseApi
{
public object Get()
{
Params.TryGetValue("id", out var id);
return Response(new { id }, Status.HTTP_SUCCESS);
}
}
Route.Register<ItemModule>();فعلهای HTTP متدهای instance عمومی با نام Get، Post، Put، Patch، Delete، … هستند (بدون حساسیت به حروف بزرگ/کوچک).
قالب مسیر
همان توکنهای Python/Node: سگمنتهای ثابت، [module]، {name} → Params["name"].
Version = "v1" به مسیر resolveشده پیشوند میزند.
گزینههای [Route]
| Property | کاربرد |
|---|---|
Tags, Desc, Title, Deprecated | متادیتا (Swagger وقتی بعداً فعال باشد) |
Version | پیشوند مسیر |
Roles | middleware نقش را اضافه میکند |
RoleClaim / RoleStateKey | سفارشیسازی lookup claim |
همچنین میتوانید Route.Register(type, path, middleware:, roles:) را صدا بزنید.
نمای درخواست
| Member | محتوا |
|---|---|
Method, Path, Body | پایه |
Headers, Params, Query | Mapها |
State | کیسهٔ middleware (JsonNode) |
Response(body, status, headers?) | helper پوشهٔ پاسخ |
خطاها
HttpException پرتاب کنید یا دیکشنریهای { status, body } برگردانید.