apiResource static method

void apiResource(
  1. String path,
  2. dynamic controller, {
  3. String? prefix,
  4. List<Middleware>? middleware,
  5. String? domain,
  6. String regex = r'\d+(\.\d+)?',
})

The routes of a JSON API resource: index, store, show, update (under both PUT and PATCH) and destroy.

resource without create and edit, which only serve HTML forms, so the controller does not need them.

Implementation

static void apiResource(
  String path,
  dynamic controller, {
  String? prefix,
  List<Middleware>? middleware,
  String? domain,
  String regex = r'\d+(\.\d+)?',
}) {
  Router.get(
    path,
    controller.index,
  ).middleware(middleware).domain(domain).prefix(prefix);

  Router.post(
    path,
    controller.store,
  ).middleware(middleware).domain(domain).prefix(prefix);

  Router.get(
    "$path/{id}",
    controller.show,
  ).middleware(middleware).domain(domain).prefix(prefix).where('id', regex);

  Router.put(
    "$path/{id}",
    controller.update,
  ).middleware(middleware).domain(domain).prefix(prefix).where('id', regex);

  Router.patch(
    "$path/{id}",
    controller.update,
  ).middleware(middleware).domain(domain).prefix(prefix).where('id', regex);

  Router.delete(
    "$path/{id}",
    controller.destroy,
  ).middleware(middleware).domain(domain).prefix(prefix).where('id', regex);
}