diff options
-rw-r--r-- | libpathod/templates/docs_pathod.html | 91 | ||||
-rw-r--r-- | libpathod/templates/request_previewform.html | 18 | ||||
-rw-r--r-- | libpathod/templates/response_previewform.html | 31 |
3 files changed, 31 insertions, 109 deletions
diff --git a/libpathod/templates/docs_pathod.html b/libpathod/templates/docs_pathod.html index 1c8f01c7..c35d9ab8 100644 --- a/libpathod/templates/docs_pathod.html +++ b/libpathod/templates/docs_pathod.html @@ -32,97 +32,6 @@ various other goodies. Try it by visiting the server root:</p> <pre class="example">http://localhost:9999</pre> -<section id="specifying_responses"> - - <div class="page-header"> - <h1>Specifying Responses</h1> - </div> - - <p>The general form of a response is as follows: - - <pre class="example">code[MESSAGE]:[colon-separated list of features]</pre></p> - - <p>Here's the simplest possible response specification, returning just an HTTP 200 - OK message with no headers and no content: - - <pre class="example">200</pre></p> - - <p>We can embellish this a bit by specifying an optional custom HTTP response - message (if we don't, pathod automatically creates an appropriate one). By - default for a 200 response code the message is "OK", but we can change it like - this:</p> - - <pre class="example">200"YAY"</pre> - - <p>The quoted string here is an example of a <a href=/docs/language#valuespec>Value - Specifier</a>, a syntax that is used throughout the pathod response - specification language. In this case, the quotes mean we're specifying a - literal string, but there are many other fun things we can do. For example, we - can tell pathod to generate 100k of random ASCII letters instead:</p> - - <pre class="example">200:@100k,ascii_letters</pre> - - <p>Full documentation on the value specification syntax can be found in the next - section. - - Following the response code specifier is a colon-separated list of features. - For instance, this specifies a response with a body consisting of 1 megabyte of - random data:</p> - - <pre class="example">200:b@1m</pre> - - <p>And this is the same response with an ETag header added:</p> - - <pre class="example">200:b@1m:h"Etag"="foo"</pre> - - <p>Both the header name and the header value are full value specifiers. Here's the - same response again, but with a 1k randomly generated header name:</p> - - <pre class="example">200:b@1m:h@1k,ascii_letters="foo"</pre> - - <p>A few specific headers have shortcuts, because they're used so often. The - shortcut for the content-type header is "c":</p> - - <pre class="example">200:b@1m:c"text/json"</pre> - - <p>That's it for the basic response definition. Now we can start mucking with the - responses to break clients. One common hard-to-test circumstance is hangs or - slow responses. pathod has a pause operator that you can use to define - precisely when and how long the server should hang. Here, for instance, we hang - for 120 seconds after sending 50 bytes (counted from the first byte of the HTTP - response):</p> - - <pre class="example">200:b@1m:p50,120</pre> - - <p>If that's not long enough, we can tell pathod to hang forever:</p> - - <pre class="example">200:b@1m:pf,120</pre> - - <p>Or to send all data, and then hang without disconnecting:</p> - - <pre class="example">200:b@1m:pa,120</pre> - - <p>We can also ask pathod to hang randomly:</p> - - <pre class="example">200:b@1m:pr,10</pre> - - <p>There is a similar mechanism for dropping connections mid-response. So, we can - tell pathod to disconnect after sending 50 bytes:</p> - - <pre class="example">200:b@1m:d50</pre> - - <p>Or randomly:</p> - - <pre class="example">200:b@1m:dr</pre> - - <p>All of these features can be combined. Here's a response that pauses twice, - once at 10 bytes and once at 20, then disconnects at 5000:</p> - - <pre class="example">200:b@1m:p10,10:p20,10:d5000</pre> - - - - <section id="api"> <div class="page-header"> <h1>API</h1> diff --git a/libpathod/templates/request_previewform.html b/libpathod/templates/request_previewform.html index c09ae018..8146ef4a 100644 --- a/libpathod/templates/request_previewform.html +++ b/libpathod/templates/request_previewform.html @@ -10,34 +10,34 @@ <input type="submit" class="btn" value="preview"> </form> -<a data-toggle="collapse" data-target="#requestexamples">more examples...</a> +<a data-toggle="collapse" data-target="#requestexamples">Don't know what to type?</a> + <div id="requestexamples" class="collapse"> + <p>Check out the <a href="/docs/language">complete language docs</a>. Here + are some examples to get you started:</p> + <table class="table table-bordered"> <tbody > <tr> <td><a href="/request_preview?spec=get:/">get:/</a></td> <td>Get path /</td> </tr> - </tbody> - <tbody > <tr> <td><a href="/request_preview?spec=get:/:b@100">get:/:b@100</a></td> <td>100 random bytes as the body</td> </tr> - </tbody> - <tbody > <tr> <td><a href='/request_preview?spec=get:/:h"User-Agent"="';drop table browsers;"'>get:/:h"User-Agent"="';drop table browsers;"</a></td> <td>Add a User-Agent header</td> </tr> - </tbody> - <tbody> <tr> <td><a href="/request_preview?spec=get:/:b@100:dr">get:/:b@100:dr</a></td> <td>Drop the connection randomly</td> </tr> - </tbody> - <tbody> + <tr> + <td><a href="/request_preview?spec="></a></td> + <td></td> + </tr> <tr> <td><a href="/request_preview?spec=get:/:b@100,ascii:ir,@1">get:/:b@100,ascii:ir,@1</a></td> <td>100 ASCII bytes as the body, and randomly inject a random byte</td> diff --git a/libpathod/templates/response_previewform.html b/libpathod/templates/response_previewform.html index 93d5960a..3b664433 100644 --- a/libpathod/templates/response_previewform.html +++ b/libpathod/templates/response_previewform.html @@ -13,38 +13,51 @@ {% endif %} </form> -<a data-toggle="collapse" data-target="#responseexamples">more examples...</a> +<a data-toggle="collapse" data-target="#responseexamples">Don't know what to type?</a> <div id="responseexamples" class="collapse"> + <p>Check out the <a href="/docs/language">complete language docs</a>. Here + are some examples to get you started:</p> + <table class="table table-bordered"> <tbody > <tr> <td><a href="/response_preview?spec=200">200</a></td> <td>A basic HTTP 200 response</td> </tr> - </tbody> - <tbody > <tr> <td><a href="/response_preview?spec=200:b@100">200:b@100</a></td> <td>100 random bytes as the body</td> </tr> - </tbody> - <tbody > <tr> <td><a href='/response_preview?spec=200:b@100:h"Server"="';drop table servers;"'>200:b@100:h"Etag"="';drop table servers;"</a></td> <td>Add a Server header</td> </tr> - </tbody> - <tbody> <tr> <td><a href="/response_preview?spec=200:b@100:dr">200:b@100:dr</a></td> <td>Drop the connection randomly</td> </tr> - </tbody> - <tbody> <tr> <td><a href="/response_preview?spec=200:b@100,ascii:ir,@1">200:b@100,ascii:ir,@1</a></td> <td>100 ASCII bytes as the body, and randomly inject a random byte</td> </tr> + <tr> + <td><a href='/response_preview?spec=200:b@1k:c"text/json"'>200:b@1k:c"text/json"</a></td> + <td>1k of random bytes, with a text/json content type</td> + </tr> + <tr> + <td><a href='/response_preview?spec=200:b@1k:p50,120'>200:b@1k:p50,120</a></td> + <td>1k of random bytes, pause for 120 seconds after 50 bytes</td> + </tr> + <tr> + <td><a href='/response_preview?spec=200:b@1k:pr,f'>200:b@1k:pr,f</a></td> + <td>1k of random bytes, but hang forever at a random location</td> + </tr> + <tr> + <td> + <a href="/response_preview?spec=200:b@100:h@1k,ascii_letters='foo'">200:b@100:h@1k,ascii_letters='foo'</a> + </td> + <td>100 ASCII bytes as the body, randomly generated 100k header name, with the value 'foo'.</td> + </tr> </tbody> </table> </div> |