mirror of https://gitee.com/bigwinds/arangodb
issue #1069: Add 'raw' link to swagger ui so that the raw swagger json can easily be retrieved
This adds a link to the Swagger API docs to an application's detail view in the **Applications** tab of the web interface. The link produces the Swagger JSON directly. If authentication is turned on, the link requires authentication, too. Conflicts: CHANGELOG
This commit is contained in:
parent
e0a379673b
commit
358c596b0e
22
CHANGELOG
22
CHANGELOG
|
@ -1,5 +1,23 @@
|
|||
v2.3.0-beta1 (2014-11-01)
|
||||
-------------------------
|
||||
v2.3.0 (XXXX-XX-XX)
|
||||
-------------------
|
||||
|
||||
* fixed issue #1075: Aardvark: user name required even if auth is off #1075
|
||||
|
||||
The fix for this prefills the username input field with the current user's
|
||||
accout name if any and `root` (the default username) otherwise. Additionally,
|
||||
the tooltip text has been slightly adjusted.
|
||||
|
||||
* fixed issue #1069: Add 'raw' link to swagger ui so that the raw swagger
|
||||
json can easily be retrieved
|
||||
|
||||
This adds a link to the Swagger API docs to an application's detail view in
|
||||
the **Applications** tab of the web interface. The link produces the Swagger
|
||||
JSON directly. If authentication is turned on, the link requires authentication,
|
||||
too.
|
||||
|
||||
|
||||
v2.3.0-beta (2014-11-01)
|
||||
------------------------
|
||||
|
||||
* added dedicated `NOT IN` operator for AQL
|
||||
|
||||
|
|
|
@ -282,16 +282,17 @@ controller.get('/docus', function (req, res) {
|
|||
+ " foxxes and supplies the paths for the swagger documentation");
|
||||
/** Get Documentation for one Foxx
|
||||
*
|
||||
* Get the complete documentation availabloe for one Foxx
|
||||
* Get the complete documentation available for one Foxx
|
||||
*
|
||||
*/
|
||||
|
||||
controller.get("/docu/:key",function (req, res) {
|
||||
var subPath = req.path.substr(0, req.path.lastIndexOf("[") - 1),
|
||||
key = req.params("key"),
|
||||
path = req.protocol + "://" + req.headers.host + "/_db/" + req.database + subPath + "/" + key + "/";
|
||||
path = req.protocol + "://" + req.headers.host +
|
||||
"/_db/" + encodeURIComponent(req.database) + subPath + "/" + encodeURIComponent(key) + "/";
|
||||
res.json(docus.listOne(path, key));
|
||||
}).summary("List documentation of all foxxes.")
|
||||
}).summary("List documentation of one foxxes.")
|
||||
.notes("This function simply returns one specific"
|
||||
+ " foxx and supplies the paths for the swagger documentation");
|
||||
|
||||
|
@ -309,6 +310,27 @@ controller.get('/docu/:key/*', function(req, res) {
|
|||
}).summary("List the API for one foxx")
|
||||
.notes("This function lists the API of the foxx"
|
||||
+ " running under the given mount point");
|
||||
|
||||
/** Subroutes for API Documentation
|
||||
*
|
||||
* Get the Elements of the API Documentation subroutes
|
||||
*
|
||||
*/
|
||||
controller.get('/swagger/:mount', function(req, res) {
|
||||
var subPath = req.path.substr(0, req.path.lastIndexOf("[") - 1),
|
||||
mount = decodeURIComponent(req.params("mount")),
|
||||
path = req.protocol + "://" + req.headers.host +
|
||||
"/_db/" + encodeURIComponent(req.database) + subPath + "/" + encodeURIComponent(mount) + "/",
|
||||
candidate = db._aal.firstExample({ mount: mount });
|
||||
|
||||
if (candidate === null) {
|
||||
throw "no entry found for mount";
|
||||
}
|
||||
res.json(docus.show(mount));
|
||||
// res.json(docus.listOneForMount(path, mount));
|
||||
}).summary("Returns the generated Swagger JSON description for one foxx")
|
||||
.notes("This function returns the Swagger JSON API description of the foxx"
|
||||
+ " running under the given mount point");
|
||||
|
||||
/** Move Foxx to other Mount
|
||||
*
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
<th class="collectionTh"><strong><%=appInfos[1] %></strong></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="collectionTh"> </th>
|
||||
<th class="collectionTh"> </th>
|
||||
<th class="collectionTh">Documentation:</th>
|
||||
<th class="collectionTh"><%=documentationJsonUrl</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="collectionTh">Mount:</th>
|
||||
|
|
|
@ -100,6 +100,14 @@
|
|||
list.push(modView.createReadOnlyEntry(
|
||||
"id_name", "Name", name
|
||||
));
|
||||
var link = window.location.origin +
|
||||
"/_db/" + encodeURIComponent(arangoHelper.currentDatabase()) +
|
||||
"/_admin/aardvark/swagger/" + encodeURIComponent(encodeURIComponent(this.model.get("mount")));
|
||||
list.push(modView.createReadOnlyEntry(
|
||||
"id_documentationJsonUrl",
|
||||
"API docs",
|
||||
"<a href=\"" + link + "\">Link to JSON</a>"
|
||||
));
|
||||
if (editable) {
|
||||
list.push(modView.createTextEntry(
|
||||
"change-mount-point", "Mount", this.model.get("mount"),
|
||||
|
|
Loading…
Reference in New Issue