* Dancer::Plugin::RPC ==> Example * This example app has 5 functions grouped in 2 groups: system: ping, version, status, list_methods metacpan: search (query => $query) These 5 functions are reachable with 3 different protocols (xmlrpc, jsonrpc2 and restrpc) on the same daemon. * Dependencies This example code uses some extra dependencies, I've stated all of them in the cpanfile. To install these dependencies in the local directory using Carton: $ cd example $ carton install This installs all dependencies in the example/local directory. * Start Example app Start the Example daemon (simple way it's a Deamon::Control wrapper`): $ cd example $ carton exec -- bin/example.pl * Testing Example app Testing the daemon (with bin/do-rpc): $ cd example Any of: $ bin/do-rpc -t xmlrpc -u http://localhost:3000/system -c status $ bin/do-rpc -t jsonrpc -u http://localhost:3000/system -c status $ bin/do-rpc -t restrpc -u http://localhost:3000/system -c status $ bin/do-rpc -t restrpc -u http://localhost:3000/system/status (same thing) $ bin/do-rpc -t xmlrpc -u http://localhost:3000/system -c ping $ bin/do-rpc -t jsonrpc -u http://localhost:3000/system -c ping $ bin/do-rpc -t restrpc -u http://localhost:3000/system/ping $ bin/do-rpc -t xmlrpc -u http://localhost:3000/system -c version $ bin/do-rpc -t jsonrpc -u http://localhost:3000/system -c version $ bin/do-rpc -t restrpc -u http://localhost:3000/system/version $ bin/do-rpc -t xmlrpc -u http://localhost:3000/system -c list_methods $ bin/do-rpc -t jsonrpc -u http://localhost:3000/system -c list_methods $ bin/do-rpc -t restrpc -u http://localhost:3000/system/list_methods $ bin/do-rpc -t xmlrpc -u http://localhost:3000/metacpan -c rpc.search \ query Dancer::Plugin::RPC $ bin/do-rpc -t jsonrpc -u http://localhost:3000/metacpan -c rpc_search \ query Dancer::Plugin::RPC $ bin/do-rpc -t restrpc -u http://localhost:3000/metacpan/search \ query Dancer::Plugin::RPC * Stop Example app Stop the Example daemon (simple way): $ cd example $ carton exec -- bin/example.pl stop Or just press ^C if you started the daemon in the foreground. * Different port As 3000 seems a popular port, one can also run the example-deamon on a different port: $ APP_PORT=3456 carton exec -- bin/example.pl