88 lines
2.6 KiB
PHP
88 lines
2.6 KiB
PHP
<?php
|
|
|
|
use dokuwiki\Remote\OpenApiDoc\OpenAPIGenerator;
|
|
|
|
if (!defined('DOKU_INC')) define('DOKU_INC', __DIR__ . '/../../');
|
|
require_once(DOKU_INC . 'inc/init.php');
|
|
global $INPUT;
|
|
|
|
if ($INPUT->has('spec')) {
|
|
header('Content-Type: application/json');
|
|
$apigen = new OpenAPIGenerator();
|
|
echo $apigen->generate();
|
|
exit();
|
|
}
|
|
?>
|
|
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>DokuWiki API Explorer</title>
|
|
<script src="https://unpkg.com/openapi-explorer/dist/browser/openapi-explorer.min.js" type="module"
|
|
defer=""></script>
|
|
<style>
|
|
body {
|
|
font-family: sans-serif;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<openapi-explorer
|
|
spec-url="<?php echo DOKU_URL ?>lib/exe/openapi.php?spec=1"
|
|
hide-server-selection="true"
|
|
use-path-in-nav-bar="true"
|
|
>
|
|
<div slot="overview-api-description">
|
|
<p>
|
|
This is an auto generated description and OpenAPI specification for the
|
|
<a href="https://www.dokuwiki.org/devel/jsonrpc">DokuWiki JSON-RPC API</a>.
|
|
It is generated from the source code and the inline documentation.
|
|
</p>
|
|
|
|
<p>
|
|
<a href="<?php echo DOKU_BASE ?>/lib/exe/openapi.php?spec=1" download="dokuwiki.json">Download
|
|
the API Spec</a>
|
|
</p>
|
|
|
|
<h3>Error Codes</h3>
|
|
|
|
<p>
|
|
The following error codes are currently used in the core methods. This list may be incomplete
|
|
or change in the future.
|
|
</p>
|
|
|
|
<table>
|
|
<tr><th>Code</th><th>Message</th></tr>
|
|
<tr><td>0</td><td>Success</td></tr>
|
|
<?php
|
|
$apigen = new OpenAPIGenerator();
|
|
$last = 0;
|
|
foreach ($apigen->getErrorCodes() as $code) {
|
|
// duplicate codes are only shown with debug
|
|
if ($code['code'] === $last && !$INPUT->has('debug')) continue;
|
|
$last = $code['code'];
|
|
echo '<tr><td>' . $code['code'] . '</td><td>' . hsc($code['message']) . '</td></tr>';
|
|
}
|
|
?>
|
|
</table>
|
|
</div>
|
|
|
|
<div slot="authentication-footer">
|
|
<p>
|
|
<?php
|
|
if ($INPUT->server->has('REMOTE_USER')) {
|
|
echo 'You are currently logged in as <strong>' . hsc($INPUT->server->str('REMOTE_USER')) . '</strong>.';
|
|
echo '<br>API calls in this tool will be automatically executed with your permissions.';
|
|
} else {
|
|
echo 'You are currently not logged in.<br>';
|
|
echo 'You can provide credentials above.';
|
|
}
|
|
?>
|
|
</p>
|
|
</div>
|
|
</openapi-explorer>
|
|
</body>
|
|
</html>
|
|
|
|
|