Skip to main content

Build Web APIs with Aqueduct #2

Published 1 min readMarkdown
Build Web APIs with Aqueduct #2

In this second part we will look at routing in further detail by building an endpoint performing CRUD(create, read, update, delete) operations. We will make use of the Router and Controller classes in the handling of requests made to our endpoint.

What is a Router?

Routers capture the request by path and forwards it to a Controller using a link method for resolution or a linkFunction to implement middleware functionality to handle the request.

Here’s what it looks like:

final router = Router();

router.route('/path-1').link(() => Path1Controller());
router.route('/path-2').linkFunction((Request req) async {
  return Response.ok('Hello, World!');
});

The path is passed as an argument when route() is invoked, and can also accept route parameters:

router.route('/path-1/:name').link(...);
router.route('/path-2/[:name]').linkFunction(...); // wrapping in square brackets means its optional

So with this snippet whatever is passed in the path segment after /path-1/ is captured in name path variable:

router.route('/path-1/:name').linkFunction((request) async {
  final name = request.path.variables['name'];
  return Response.ok('Hello, $name');
});

See how routers and controllers work in the video.

Get the source code

Further reading

About the author

  • I'm Jermaine, a Web Developer, Technical Writer and Programming Instructor. Having worked with various languages in the IT industry for over 13+ years now, I am here to share my knowledge on software development with the community.

No comments yet. Be the first to comment.

More from this blog