Skip to content

Instantly share code, notes, and snippets.

@xvaldetaro
Created September 15, 2014 21:56
Show Gist options
  • Save xvaldetaro/b0f0391537f4b46e5931 to your computer and use it in GitHub Desktop.
Save xvaldetaro/b0f0391537f4b46e5931 to your computer and use it in GitHub Desktop.
shelf sample
import 'package:shelf/shelf_io.dart' as shelf_io;
import 'package:shelf/shelf.dart' as shelf;
import 'package:shelf_route/shelf_route.dart' as shelf_route;
import 'package:shelf_exception_response/exception_response.dart' as shelf_exception;
void main() {
var router = shelf_route.router()
..get('/', (_) => new shelf.Response.ok("Hello World"))
..post('/', (_) => new shelf.Response.ok("Hello World"))
..put('/', (_) => new shelf.Response.ok("Hello World"))
..delete('/', (_) => new shelf.Response.ok("Hello World"),
middleware: logRequests())
..add('/multimethod', ['GET', 'PUT'], (_) => new shelf.Response.ok("Hello World"))
..get('/greeting/{name}', (request) =>
new shelf.Response.ok("Hello ${shelf_route.getPathParameter(request, 'name')}"))
..get('/greeting2/{name}{?age}', (request) {
var name = shelf_route.getPathParameter(request, 'name');
var age = shelf_route.getPathParameter(request, 'age');
return new shelf.Response.ok("Hello $name of age $age");
});
var handler = const shelf.Pipeline()
.addMiddleware(shelf.logRequests())
.addMiddleware(shelf_exception.exceptionResponse())
.addHandler(router.handler);
shelf_route.printRoutes(router);
shelf_io.serve(handler, 'localhost', 8080).then((server) {
print('Serving at http://${server.address.host}:${server.port}');
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment