[aur-dev] [PATCH 1/1] restructure the html/rpc.php endpoint

elij elij.mx at gmail.com
Sat May 28 17:14:34 EDT 2011


- 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.
---
 web/html/rpc.php |   60 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 32 insertions(+), 28 deletions(-)

diff --git a/web/html/rpc.php b/web/html/rpc.php
index 1a9ca34..27439db 100644
--- a/web/html/rpc.php
+++ b/web/html/rpc.php
@@ -1,36 +1,40 @@
 <?php
-
 set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');
-
 include_once("aurjson.class.php");
 
-if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
-    if ( isset($_GET['type']) ) {
-        $rpc_o = new AurJSON();
-        echo $rpc_o->handle($_GET);
-    }
-    else {
-        // 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.
-        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 '   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 />   http://aur-url/rpc.php?type=search&arg=foobar&callback=jsonp1192244621103';
-        echo '</body></html>';
-    }
+if ( $_SERVER['REQUEST_METHOD'] != 'GET' ) {
+	header('HTTP/1.1 405 Method Not Allowed');
+}
+
+if ( isset($_GET['type']) ) {
+	$rpc_o = new AurJSON();
+	echo $rpc_o->handle($_GET);
 }
 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 />
+   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 />
+	   http://aur-url/rpc.php?type=search&arg=foobar&callback=jsonp1192244621103
+</body></html>
+<?php
+// close if statement
 }
 ?>
-- 
1.7.2.5



More information about the aur-dev mailing list