aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/templates/docs_pathod.html
blob: a135da956fce4cee0c292d2de844e3c83cdea88c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
{% extends "frame.html" %}
{% block body %}  

<div class="page-header">
   <h1>
        pathod
        <small>A pathological web daemon.</small>
    </h1>
</div>

<p>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:</p>

<pre class="example">http://localhost:9999/p/200</pre>

<p>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:</p>

<pre class="terminal">pathod -a "/foo=200"</pre>

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

<p>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:</p>

<pre class="example">http://localhost:9999</pre>

<section id="api">
    <div class="page-header">
       <h1>API</h1>
    </div>

    <p>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. </p>


    <table class="table table-bordered">
        <tbody >
            <tr>
                <td>
                    /api/clear_log
                </td>
                <td>
                    A POST to this URL clears the log buffer.
                </td>
            </tr>
            <tr>
                <td>
                    /api/info
                </td>
                <td>
                    Basic version and configuration info.
                </td>
            </tr>
            <tr>
                <td>
                    /api/log
                </td>
                <td>
                    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:

                    <pre>{ 'log': [ ENTRIES ] } </pre>

                    You can preview the JSON data returned for a log entry through the built-in web
                    interface.
                </td>
            </tr>
        </tbody>
    </table>
</section>

<section>
    <div class="page-header">
       <h1>Error Responses</h1>
    </div>

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

    <pre class="example">http://localhost:9999/p/foo</pre>

    <p>... will return an 800 response because "foo" is not a valid page
    specifier.</p>

</section>

{% endblock %}