Add rest.php (REST API endpoint) with feature flag
authorTim Starling <tstarling@wikimedia.org>
Thu, 16 May 2019 04:36:45 +0000 (14:36 +1000)
committerTim Starling <tstarling@wikimedia.org>
Tue, 9 Jul 2019 05:23:29 +0000 (15:23 +1000)
Change-Id: I0f9aaa9cc81f93c00f7a28041615d7290b453803

includes/DefaultSettings.php
includes/Rest/EntryPoint.php
rest.php [new file with mode: 0644]

index a32af36..ce53060 100644 (file)
@@ -8299,6 +8299,13 @@ $wgCrossSiteAJAXdomains = [];
  */
 $wgCrossSiteAJAXdomainExceptions = [];
 
+/**
+ * Enable the experimental REST API.
+ *
+ * This will be removed once the REST API is stable and used by clients.
+ */
+$wgEnableRestAPI = false;
+
 /** @} */ # End AJAX and API }
 
 /************************************************************************//**
index 40d0b4a..a14c1a1 100644 (file)
@@ -32,6 +32,12 @@ class EntryPoint {
                $services = MediaWikiServices::getInstance();
                $conf = $services->getMainConfig();
 
+               if ( !$conf->get( 'EnableRestAPI' ) ) {
+                       wfHttpError( 403, 'Access Denied',
+                               'Set $wgEnableRestAPI to true to enable the experimental REST API' );
+                       return;
+               }
+
                $request = new RequestFromGlobals( [
                        'cookiePrefix' => $conf->get( 'CookiePrefix' )
                ] );
diff --git a/rest.php b/rest.php
new file mode 100644 (file)
index 0000000..3ac532e
--- /dev/null
+++ b/rest.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This is the entry point for the REST API.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+use MediaWiki\Rest\EntryPoint;
+
+require __DIR__ . '/includes/WebStart.php';
+
+EntryPoint::main();