{% extends "frame.html" %} {% block body %}

At pathod's heart is a small, terse language for crafting HTTP responses, designed to be easy to specify in a request URL. The simplest way to use pathod is to fire up the daemon, and specify the response behaviour you want using this language in the request URL. Here's a minimal example:

http://localhost:9999/p/200

Everything after the "/p/" path component is a response specifier - in this case just a vanilla 200 OK response. See the docs below to get (much) fancier. You can also add anchors to the pathod server that serve a fixed response whenever a matching URL is requested:

pathod -a "/foo=200"

Here, "/foo" a regex specifying the anchor path, and the part after the "=" is a response specifier.

pathod also has a nifty built-in web interface, which lets you play with the language by previewing responses, exposes activity logs, online help and various other goodies. Try it by visiting the server root:

http://localhost:9999

pathod exposes a simple API, intended to make it possible to drive and inspect the daemon remotely for use in unit testing and the like.

/api/clear_log A POST to this URL clears the log buffer.
/api/info Basic version and configuration info.
/api/log Returns the current log buffer. At the moment the buffer size is 500 entries - when the log grows larger than this, older entries are discarded. The returned data is a JSON dictionary, with the form:
{ 'log': [ ENTRIES ] } 
You can preview the JSON data returned for a log entry through the built-in web interface.

Pathod uses the non-standard 800 response code to indicate internal errors, to distinguish them from crafted responses. For example, a request to:

http://localhost:9999/p/foo

... will return an 800 response because "foo" is not a valid page specifier.

{% endblock %}