aboutsummaryrefslogtreecommitdiff
path: root/engine/handlers/service_handler.php
diff options
context:
space:
mode:
Diffstat (limited to 'engine/handlers/service_handler.php')
-rw-r--r--engine/handlers/service_handler.php29
1 files changed, 18 insertions, 11 deletions
diff --git a/engine/handlers/service_handler.php b/engine/handlers/service_handler.php
index 51ec2a689..9cfcd230f 100644
--- a/engine/handlers/service_handler.php
+++ b/engine/handlers/service_handler.php
@@ -1,20 +1,27 @@
<?php
/**
- * Elgg web services handler.
+ * Services handler.
*
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
+ * This file dispatches requests to web services. It is called via a URL rewrite
+ * in .htaccess from http://site/services/api/handler/response_format/request.
+ * The first element after 'services/api/' is the service handler name as
+ * registered by {@link register_service_handler()}.
+ *
+ * The remaining string is then passed to the {@link service_handler()}
+ * which explodes by /, extracts the first element as the response format
+ * (viewtype), and then passes the remaining array to the service handler
+ * function registered by {@link register_service_handler()}.
+ *
+ * If a service handler isn't found, a 404 header is sent.
+ *
+ * @package Elgg.Core
+ * @subpackage WebServices
+ * @link http://docs.elgg.org/Tutorials/WebServices
*/
+require_once(dirname(dirname(__FILE__)) . "/start.php");
-// Load Elgg engine
-define('externalpage',true);
-require_once("../start.php");
-
-// Get input
$handler = get_input('handler');
$request = get_input('request');
-service_handler($handler, $request); \ No newline at end of file
+service_handler($handler, $request);