Логотип Fusion Framework от Cipher UnitFusion

Router

Регистрация классовых API с [Route] в C#

Обзор

Пометьте подкласс FusionBaseApi атрибутом [Route(...)], затем вызовите Route.Register<T>() или Route.RegisterAll(assembly) до Listen().

[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" добавляет префикс к resolved-пути.

Опции [Route]

СвойствоНазначение
Tags, Desc, Title, DeprecatedМетаданные (Swagger, когда будет включён)
VersionПрефикс пути
RolesДобавляет role middleware
RoleClaim / RoleStateKeyНастройка lookup claim

Также можно вызвать Route.Register(type, path, middleware:, roles:).

Представление запроса

ЧленСодержимое
Method, Path, BodyБазовые поля
Headers, Params, QueryКарты
StateСумка middleware (JsonNode)
Response(body, status, headers?)Helper конверта ответа

Ошибки

Бросайте HttpException или возвращайте словари { status, body }.

На этой странице