Dart - api.post()

Register an API route and set a specific HTTP POST handler on that route.

import 'package:nitric_sdk/nitric.dart';

// Create an API named 'public'
final api = Nitric.api("public");

api.post("/customers/:customerId", (ctx) async {
  // Extract the path parameter
  final id = ctx.req.pathParams["customerId"]!;

  // Construct response for the POST: /customers request...
  final responseBody = {};
  ctx.res.json(responseBody);

  return ctx;
});

Parameters

  • Name
    match
    Required
    Required
    Type
    String
    Description

    The path matcher to use for the route. Matchers accept path parameters in the form of a colon prefixed string. The string provided will be used as that path parameter's name when calling handlers.

  • Name
    handler
    Required
    Required
    Type
    HttpHandler
    Description

    The middleware service to use as the handler for HTTP requests.

  • Name
    security
    Optional
    Optional
    Type
    List<OidcOptions>
    Description

    Security rules to apply with scopes to the entire API.

Examples

Register a handler for POST requests

import 'package:nitric_sdk/nitric.dart';

// Create an API named 'public'
final api = Nitric.api("public");

api.post("/customers", (ctx) async {
  // Construct response for the POST: /customers request...
  final responseBody = {};
  ctx.res.json(responseBody);

  return ctx;
});

Access the request body

The POST request body is accessible from the ctx.req object.

import 'package:nitric_sdk/nitric.dart';

// Create an API named 'public'
final api = Nitric.api("public");

api.post("/customers/:customerId", (ctx) async {
  // Extract the path parameter
  final id = ctx.req.pathParams["customerId"]!;

  // Extract the request body
  final customerData = ctx.req.json();

  // Construct response for the PATCH: /customers request...
  final responseBody = {};
  ctx.res.json(responseBody);

  return ctx;
});