| 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 |