It has been quiet around the Act Voyager project...
but some really important things are slowly coming together!
To build a REST API for Act there are some frameworks that would be suitable... and none of them are perfect. And for a long time I had been pondering if I should use Dancer2 or the Web::Machine. Dancer2 is missing a lot of functionality desperately needed to make HTTP actually work. Web::Machine I always had my doubts about it's correctness of the underlying state-machine (by Basho). And recently I have made up my mind. The Web::Machine state-machine is NOT compliant with the HTTP specs and therefore I am not going to use it. And will invest time and energy in writing plugins for Dancer2 that will follow the RFC's.
Reading the RFC is quite hard, and once understood, writing a Dancer2 plugins is the next step. In my attempt to do a better job then others have tried before me, I need to keep things separate, just like the RFC's:
RFC 7231 Section 5.3: Content Negotiation
RFC 7232: Conditional Requests
RFC 7234: Caching
RFC 7235: Authentication
The last weeks I have been working on the four key technologies mentioned above and many pieces of the HTTP plugins are almost ready for deployment. At least, they work in the example scripts I used, but should have proper tests... and documentation - urmpf! Once those plugins are available for Dancer2 I hope that many developers will follow the simple pattern to write their own API's.
The coming weeks I will finish those plugins and present them in a very comprehensive overview at the London Perl Workshop.
Once finished with those plugins, Act-Voyager can be developed further and can make use of essential parts of the HTTP protocol... Caching, Conditional Requests, Authorization and Content Negotiation...
Oh... and if someone knows about a way to cache responses - RFC compliant - please let me know...
See you at the London Perlworkshop, Saturday 12th December