Mulib/Examples

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Mulib Examples

These are some short examples to give a flavor of using mulib.

hello world

The following program will bring up a webserver listening on port 8080 which can respond to a single request, "GET /", with the response "hello, world":

from mulib import mu

from eventlet import api, httpd

class HelloWorld(mu.Resource):
   def handle_get(self, req):
       req.write("hello, world\n")

root = HelloWorld()

httpd.server(
   api.tcp_listener(('0.0.0.0', 8080)),
   mu.SiteMap(root))


stacked

Stacked is a pure REST server, and you can use it to traverse native python objects like dicts.

from mulib import mu from eventlet import api, httpd root = {'':'hello, world\n', 'other':"hello, other\n"} httpd.server(api.tcp_listener(('0.0.0.0', 8080)), mu.SiteMap(root))

You can then access this dictionary as a REST resource, e.g. > curl http://localhost:8080/ hello, world > curl http://localhost:8080/other hello, other > curl -X PUT -d "the new data" http://localhost:8080/third > curl http://localhost:8080/third the new data

Mu/stacked can do content negotiation:

> curl -X PUT -H "Content-type: application/json" -d '{"hi": "there"}' http://localhost:8080/fourth > curl http://localhost:8080/fourth/hi there > curl -H "Accept: application/json" http://localhost:8080/fourth {'hi': 'there'}

Note: This means that anyone who has access to your stacked web service can modify the data in your process! In the future we might have a 'read-only' implementation.