Skip to main content

Endpoint

A @Endpoint() in Sarus defines a class that handles HTTP routes. It's one of the core building blocks of the framework.

The value passed to @Endpoint(path: '/greeting') defines a route prefix applied to all methods in that class. For example:

import 'dart:convert';

import 'package:example/greeting/middlewares.dart';
import 'package:sarus/sarus.dart';

@Endpoint(path: '/greeting')
class GreetingEndpoints extends Endpoints {
GreetingEndpoints() : super();

@Get(path: '/message')
Future<Response> index(Request request) async {
return Response.ok(jsonEncode({'message': 'Hello from GreetingEndpoint'}));
}

@override
RouterConfig get router => _$greetingEndpointsRouterConfig(this);

@override
Handler get handler => const Pipeline()
.addMiddleware(greetingMiddleware)
.addHandler(router.call);
}

This will map to /greeting/message in the HTTP server.

Note: The base path /greeting applies to all methods inside.

HTTP Method Handlers

Sarus supports the following method decorators:

  • @Get()
  • @Post()
  • @Put()
  • @Delete()
  • @Patch()
  • @Head()
  • @Options()