The Divine Web Service Framework
The Divine Web Service Framework is the spiritual successor of that project, taking everything that was good about it and reimagining it for the modern era.
Gone is the server-side templating support — we write client side web applications now — and E4X is since long dead1,
but the focus on web standards and correctness, developer friendly and secure, injection-safe interfaces
to SQL databases, aversion to callbacks — thanks God for
await — and the ubiquitous URI class are some
of the good things that remain.
In one sense, the WSF is just a collection of Node.js modules that happens to have something to do with the web. But each module serves a purpose, and together they form a powerful framework for writing TypeScript web services.
There are two main modules in WSF:
- @divine/uri, call it the "client" API if you wish, handles everything I/O: accessing local and remote resources of all kinds, parsing and serializing data, encoding and decoding byte streams, handling authentication.
- @divine/web-service, the "server" API, is all about building world-class REST web APIs and RPC micro-services, with advanced features such as streaming, ETag and precondition handling, and content negotiation. Caveat emptor: the module does not yet have all those advanced features. But it will one day.
The bulk of the WSF documentation is provided in the form of API documentation, so please go ahead and click those links above. In the following sections, we will instead focus on a few use cases and recipes for how to handle them.