restructure the html/rpc.php endpoint

- move request_method test to the top, and catch other request types
  (HEAD, PUT, etc)
- change how html output is handled. instead of building a string, just
  output the html
- set appropriate response header for incorrect request_method.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
elij 2011-05-28 14:14:34 -07:00 committed by Lukas Fleischer
parent 0df6d7b4e7
commit 4a24bca069

View file

@ -1,36 +1,41 @@
<?php <?php
set_include_path(get_include_path() . PATH_SEPARATOR . '../lib'); set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');
include_once("aurjson.class.php"); include_once("aurjson.class.php");
if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) { if ( $_SERVER['REQUEST_METHOD'] != 'GET' ) {
if ( isset($_GET['type']) ) { header('HTTP/1.1 405 Method Not Allowed');
$rpc_o = new AurJSON(); exit();
echo $rpc_o->handle($_GET); }
}
else { if ( isset($_GET['type']) ) {
// dump a simple usage output for people to use. $rpc_o = new AurJSON();
// this could be moved to an api doc in the future, or generated from echo $rpc_o->handle($_GET);
// the AurJSON class directly with phpdoc. For now though, just putting it here.
echo '<html><body>';
echo 'The methods currently allowed are: <br />';
echo '<ul>';
echo '<li>search</li>';
echo '<li>info</li>';
echo '<li>multiinfo</li>';
echo '<li>msearch</li>';
echo '</ul><br />';
echo 'Each method requires the following HTTP GET syntax:<br />';
echo '&nbsp;&nbsp; type=<i>methodname</i>&arg=<i>data</i> <br /><br />';
echo 'Where <i>methodname</i> is the name of an allowed method, and <i>data</i> is the argument to the call.<br />';
echo '<br />';
echo 'If you need jsonp type callback specification, you can provide an additional variable <i>callback</i>.<br />';
echo 'Example URL: <br />&nbsp;&nbsp; http://aur-url/rpc.php?type=search&arg=foobar&callback=jsonp1192244621103';
echo '</body></html>';
}
} }
else { else {
echo 'POST NOT SUPPORTED'; // dump a simple usage output for people to use.
// this could be moved to an api doc in the future, or generated from
// the AurJSON class directly with phpdoc. For now though, just putting it
// here.
?>
<html><body>
The methods currently allowed are: <br />
<ul>
<li>search</li>
<li>info</li>
<li>multiinfo</li>
<li>msearch</li>
</ul> <br />
Each method requires the following HTTP GET syntax: <br />
&nbsp;&nbsp; type=<i>methodname</i>&arg=<i>data</i>
<br /><br />
Where <i>methodname</i> is the name of an allowed method, and <i>data</i> is the argument to the call.
<br /><br />
If you need jsonp type callback specification, you can provide an additional variable <i>callback</i>.
<br />
Example URL: <br />
&nbsp;&nbsp; http://aur-url/rpc.php?type=search&arg=foobar&callback=jsonp1192244621103
</body></html>
<?php
// close if statement
} }
?> ?>