wmexamples / priv / dispatch.conf

%% -*- mode: erlang -*-

%% General Hello + Dispatch Info
%% This resource returns some general "hello world", along with
%% a "prettier" interpretation of this dispatch file.
{[],                  %% expose resource at /
 wmexamples_resource, %% defined in wmexamples_resource.erl
 []}.                 %% no configuration

%% CouchDB proxy example
%% This will expose all couchdb functionality through webmachine
%% such that requests to
%%   http://localhost:5984/            (default couch host:port)
%% and
%%   http://localhost:8000/couch/      (chosen proxy host:port/path)
%% are equivalent.
%% A few commands to try:
%%   curl http://localhost:8000/couch/
%%   curl -X PUT http://localhost:8000/couch/mytestdb
%%   curl -X PUT http://localhost:8000/couch/mytestdb/123 \
%%        --data "{\"hello\":\"goodbye\"}"
%%   curl http://localhost:8000/couch/mytestdb/123
{["couch",'*'],                   %% expose resource at /couch/*
 couchdb_proxy,                   %% defined in couchdb_proxy.erl
 {"http://localhost:8000/couch/", %% "ExternalPath" init param
  "http://localhost:5984/"}}.     %% "CouchPath" init param

%% Environment Variable Inspection example
%% Try:
%%   curl http://localhost:8000/_env
%%   curl -u webmachine:rules -H "Content-type: application/json" \
%%        -X PUT http://localhost:8000/_env/DEMO --data "\"hello\""
{["_env"],       %% exposed at /_env/
 env_resource,   %% defined in env_resource.erl
 []}.            %% no configuration

{["_env", env],  %% exposed at /_env/VARIABLE_NAME
 env_resource,   %% defined in env_resource.erl
 []}.            %% no configuration

%% Webmachine Trace Utility
%% These are static dispatch lines to enable the trace utility
%% every time this application is started.
{["wmtrace",'*'],          %% exposed at /wmtrace/*
 wmtrace_resource,         %% defined in wmtrace_resource.erl
                           %%   (included with webmachine)
 [{trace_dir, "traces"}]}. %% trace files are in "traces" directory

%% sampletrace is meant for nothing other than generating a few sample
%% trace files.  It expects a "code" query parameter, specifying which
%% response code you'd like.
%% Current supported codes are: 200 (default), 404, 301, and 500

%% x-www-form-urlencoded -> JSON translator
%% Converts form data to JSON data.
%% Try:
%%    curl "http://localhost:8000/formjson?one=two&me=pope"
%%    curl -X POST http://localhost:8000/formjson \
%%         -d "one=two&me=pope"
{["formjson"],      %% exposed at /formjson
 formjson_resource, %% defined in formjson_resource
 []}.               %% no configuration

%% File Resource
%% Serve files from disk.
{['*'],                 %% match anything not matched by
                        %% previous clauses
 static_resource,       %% defined in static_resource.erl
 [{root, "priv/www"}]}. %% serve from priv/www
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.