|
|
The REST frontend implements an interoperable HTTP wrapper around a Collection. See RestUrls for a description of the URL layout, parameters, etc..
The REST frontend is designed to support a variety of wire formats using Serializers. A minimal webbrowser HTML UI is also provided. It is backend agnostic, allowing the same network-facing code to be used with multiple backends without modification.
The ClientBackend builds a Python Collection around a remote RestFrontend server.
It lives in grassyknoll.frontend.RestCollection.
Why REST?
REST, in the author's opinion, is the One Right Way to write webapps and distributed applications generally. See SlidesAndArticles for more.
Deployment
The RestFrontend is intended to be deployed as a standalone webserver. If you're using GrassyKnoll solely as a fast internal webservice, this will probably suffice.
Unlike traditional webapp deployments using FastCGI/SCGI, the RestFrontend speaks HTTP directly. Therefore, it can communicate directly with webbrowsers and other clients. However, most deployments will place a traditional webserver such as Apache or Lighttpd in front, using mod_proxy. Doing so provides better security, logging and URL rewriting than GrassyKnoll currently is capable of. Load balancers and caches may also be deployed in front of the RestFrontend.
Note: no one's actually tried this yet.
Sign in to add a comment
