1
0
forked from GitHub/gf-core

GF cloud api doc fixes

This commit is contained in:
hallgren
2012-06-18 15:18:02 +00:00
parent 71da012626
commit 3d5efdd2d2

View File

@@ -6,31 +6,52 @@
<meta name = "viewport" content = "width = device-width">
<style type="text/css">
dl.api>dt, .request { background-color: #cef; }
dl.api>dd code, .response { background-color: #ffc; }
.response { background-color: #ffc; }
dd { margin-top: 0.5ex; margin-bottom: 0.5ex; }
</style>
</head>
<body>
<h1><img class=nofloat src="P/gf-cloud.png" alt=""> GF Cloud Service API (preliminary)</h1>
<h1><a href="./"><img src="P/gf-cloud.png" alt=""></a> GF Cloud Service API (preliminary)</h1>
The GF cloud service API provides the following functionality:
<ul>
<li>The functionalty available in via the <strong>PGF service API</strong>,
<li>The functionality provided by the commands in <strong>GF shell</strong>,
<li>the functionality available in via the <strong>PGF service API</strong>,
<li>the functionality provided by the commands in the
<strong>GF shell</strong>,
<li>some additional services for
grammar compilation and persistent storage of files in the cloud.
</ul>
<p>
<strong>This is preliminary and subject to change!</strong>
<h2>Availability and protocol</h2>
<p>
The service is available from
<a href="http://cloud.grammaticalframework.org"><code>http://cloud.grammaticalframework.org</code></a>.
<a href="http://cloud.grammaticalframework.org/"><code>http://cloud.grammaticalframework.org/</code></a>.
Users that have GF installed on their own computer can also
run the service locally by starting GF with the command <code>gf -server</code>.
<p>
Requests are made via HTTP with the GET or POST method. (The examples below
show GET requests, but POST is preferred for requests that change the state
on the server.)
<p>
Data in requests is in the <code>application/x-www-form-urlencoded</code> format
(the format used by default by web browsers when submitting form data).
<p>
Data in responses is usually in JSON format.
The HTTP response code is usually 200, but can also be
204 (after file upload),
404 (file to download or remove was not found),
400 (for unrecognized commands or missing/unacceptable parameters in requests)
or
501 (for unsupported HTTP request methods).
<strong>This is preliminary and subject to change!</strong>
<h2>Requests</h2>
<h3>PGF Service</h3>
@@ -57,14 +78,17 @@ For more info, see:
<h3>GF Shell Service</h3>
This service lets you execute arbitrary GF shell commands. Before you can do
this, you need to use the <code class=request>/new</code> command to obtain a
working directory (which also servces as a session identifier) on the server,
working directory (which also serves as a session identifier) on the server,
see below.
<dl class=api>
<dt><code>/gfshell&amp;dir=</code>...<code>&amp;command=i+Foods.pgf</code>
<dt><code>/gfshell?dir=</code>...<code>&amp;command=i+Foods.pgf</code>
<dd>&nbsp;
<dt><code>/gfshell&amp;dir=</code>...<code>&amp;command=gr</code>
<dd><code>Pred (That Pizza) (Very Boring)</code>
<dt><code>/gfshell?dir=</code>...<code>&amp;command=gr</code>
<dd class=response><code>Pred (That Pizza) (Very Boring)</code>
<dt><code>/gfshell?dir=/tmp/gfse.t6GFEY6b/&command=ps+-lextext+%22That+pizza+is+very+boring.%22</code>
<dd class=response><code>that pizza is very boring .</code>
</dl>
For documentation of GF shell commands, see:
@@ -77,9 +101,9 @@ For documentation of GF shell commands, see:
<dl class=api>
<dt><code>/new</code>
<dd>This generates a new working directory on the server, e.g.
<code>/tmp/gfse.123456</code>.
Most of the clouds service commands require that a working directory
is specified in the <code>dir</code> parameter.
<code class=response>/tmp/gfse.123456</code>.
Most of the cloud service commands require that a working directory
is specified in the <code class=request>dir</code> parameter.
The working directory is persistent, so clients are expected
to remember and reuse it. Access to previously
uploaded files requires that the same working directory is used.
@@ -87,18 +111,19 @@ For documentation of GF shell commands, see:
<dd>This command can be used to check GF source code for syntax errors.
It also converts GF source code to the JSON representation used in
GFSE (the cloud-based GF grammar editor).
<dt><code>/cloud?&amp;dir=</code>...<code>&amp;command=upload&amp;</code><var>path<sub>1</sub></var><code>=</code><var>source<sub>1</sub></var><code>&amp;</code><var>path<sub>2</sub></var><code>=</code><var>source<sub>2</sub></var><code>&amp;</code>...
<dt><code>/cloud?dir=</code>...<code>&amp;command=upload&amp;</code><var>path<sub>1</sub></var><code>=</code><var>source<sub>1</sub></var><code>&amp;</code><var>path<sub>2</sub></var><code>=</code><var>source<sub>2</sub></var><code>&amp;</code>...
<dd>Upload files to be stored in the cloud.
<dt><code>/cloud?&amp;dir=</code>...<code>&amp;command=make&amp;</code><var>path<sub>1</sub></var><code>=</code><var>source<sub>1</sub></var><code>&amp;</code><var>path<sub>2</sub></var><code>=</code><var>source<sub>2</sub></var><code>&amp;</code>...
<dt><code>/cloud?dir=</code>...<code>&amp;command=make&amp;</code><var>path<sub>1</sub></var><code>=</code><var>source<sub>1</sub></var><code>&amp;</code><var>path<sub>2</sub></var><code>=</code><var>source<sub>2</sub></var><code>&amp;</code>...
<dd>Upload grammar files and compile them into a PGF file.
<dt><code>/cloud?&amp;dir=</code>...<code>&amp;command=download&amp;file=</code><var>path</var>
The response code is 204 if the upload was successful.
<dt><code>/cloud?dir=</code>...<code>&amp;command=download&amp;file=</code><var>path</var>
<dd>Download the specified file.
<dt><code>/cloud?&amp;dir=</code>...<code>&amp;command=ls&ext=.pgf</code>
<dd><code>["Foods.pgf","Letter.pgf"]</code> (list files with the specified extension)
<dt><code>/cloud?&amp;dir=</code>...<code>&amp;command=rm&amp;file=</code><var>path</var>
<dt><code>/cloud?dir=</code>...<code>&amp;command=ls&ext=.pgf</code>
<dd>List files with the specified extension, e.g.
<code class=response>["Foods.pgf","Letter.pgf"]</code>.
<dt><code>/cloud?dir=</code>...<code>&amp;command=rm&amp;file=</code><var>path</var>
<dd>Remove the specified file.
<dt><code>/cloud?&amp;dir=</code>...<code>&amp;command=link_directories&newdir=</code>...
<dt><code>/cloud?dir=</code>...<code>&amp;command=link_directories&newdir=</code>...
<dd>Combine server directores. This is used by GFSE to share grammars
between multiple devices.
</dl>
@@ -106,7 +131,7 @@ For documentation of GF shell commands, see:
<hr>
<address></address>
<div class=modtime><small>
<!-- hhmts start --> Last modified: Mon Jun 18 15:03:02 CEST 2012 <!-- hhmts end -->
<!-- hhmts start --> Last modified: Mon Jun 18 17:13:51 CEST 2012 <!-- hhmts end -->
</small></div>
<address>
<a href="http://www.cse.chalmers.se/~hallgren/">TH</a>