OLD | NEW |
1 ## Web Server Middleware for Dart | 1 ## Web Server Middleware for Dart |
2 | 2 |
3 ## Introduction | 3 ## Introduction |
4 | 4 |
5 **Shelf** makes it easy to create and compose **web servers** and **parts of web | 5 **Shelf** makes it easy to create and compose **web servers** and **parts of web |
6 servers**. How? | 6 servers**. How? |
7 | 7 |
8 * Expose a small set of simple types. | 8 * Expose a small set of simple types. |
9 * Map server logic into a simple function: a single argument for the request, | 9 * Map server logic into a simple function: a single argument for the request, |
10 the response is the return value. | 10 the response is the return value. |
(...skipping 11 matching lines...) Expand all Loading... |
22 void main() { | 22 void main() { |
23 var handler = const shelf.Stack().addMiddleware(shelf.logRequests()) | 23 var handler = const shelf.Stack().addMiddleware(shelf.logRequests()) |
24 .addHandler(_echoRequest); | 24 .addHandler(_echoRequest); |
25 | 25 |
26 io.serve(handler, 'localhost', 8080).then((server) { | 26 io.serve(handler, 'localhost', 8080).then((server) { |
27 print('Serving at http://${server.address.host}:${server.port}'); | 27 print('Serving at http://${server.address.host}:${server.port}'); |
28 }); | 28 }); |
29 } | 29 } |
30 | 30 |
31 shelf.Response _echoRequest(shelf.Request request) { | 31 shelf.Response _echoRequest(shelf.Request request) { |
32 return new shelf.Response.ok('Request for "${request.pathInfo}"'); | 32 return new shelf.Response.ok('Request for "${request.url}"'); |
33 } | 33 } |
34 ``` | 34 ``` |
35 | 35 |
36 ## Inspiration | 36 ## Inspiration |
37 | 37 |
38 * [Connect](http://www.senchalabs.org/connect/) for NodeJS. | 38 * [Connect](http://www.senchalabs.org/connect/) for NodeJS. |
39 * Read [this great write-up](http://howtonode.org/connect-it) to understand | 39 * Read [this great write-up](http://howtonode.org/connect-it) to understand |
40 the overall philosophy of all of these models. | 40 the overall philosophy of all of these models. |
41 * [Rack](http://rack.github.io/) for Ruby. | 41 * [Rack](http://rack.github.io/) for Ruby. |
42 * [WSGI](http://legacy.python.org/dev/peps/pep-3333/) for Python. | 42 * [WSGI](http://legacy.python.org/dev/peps/pep-3333/) for Python. |
OLD | NEW |