API implementation (#712)
* initial v0 creator * working json api for generic reports * add require login * move report swagger into plugin, and set new default layout of noop * require proper role and also use new util func * start to tidy authn * some work on cleaning up web authn * clean up the authN checks * fix bug * fix the auth for api * fixes to json handling * set swagger sort order * enable most reports for api endpoints * fix doc * add paramters to reports * add missed report * allow api_parameters in reports config * reorganise api * add vlan search * add port search * make sure to enable layout processing * add device search * add v1 to api paths * add Node Search * support api_responses * add device object search; fix spurious ports field in device result class * handle some plugins just returning undef if search fails * errors from api seamlessley * fix error in date range default * more sensible default for prefix * change order of endpoints in swagger-ui * all db row classes can now TO_JSON * add device_port api endpoint * add device ports endpoint * do not expand docs * add swagger ui json tree formatter * add all relations from Device table * add port relations * add nodes retrieve on device or vlan * rename to GetAPIKey * update config for previous commit
This commit is contained in:
@@ -416,7 +416,7 @@ worker_plugins:
|
||||
- 'Power'
|
||||
- 'Psql'
|
||||
- 'Renumber'
|
||||
- 'SetUserToken'
|
||||
- 'GetAPIKey'
|
||||
- 'Show'
|
||||
- 'Stats'
|
||||
- 'Vlan'
|
||||
@@ -494,7 +494,7 @@ engines:
|
||||
PRE_CHOMP: 1
|
||||
INCLUDE_PATH: []
|
||||
AUTO_FILTER: 'html_entity'
|
||||
layout: 'main'
|
||||
layout: 'noop'
|
||||
plugins:
|
||||
Swagger:
|
||||
main_api_module: 'App::Netdisco'
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Swagger UI</title>
|
||||
<script src="./swagger-ui-json-tree-plugin.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="./swagger-ui.css" >
|
||||
<link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
|
||||
<link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
|
||||
@@ -37,6 +38,8 @@
|
||||
<script src="./swagger-ui-standalone-preset.js"> </script>
|
||||
<script>
|
||||
window.onload = function() {
|
||||
// https://github.com/justinebateman/swagger-ui-json-tree-plugin
|
||||
SwaggerUIStandalonePreset.unshift(jsonTreePlugin.default);
|
||||
// Begin Swagger UI call region
|
||||
const ui = SwaggerUIBundle({
|
||||
url: "https://petstore.swagger.io/v2/swagger.json",
|
||||
@@ -49,7 +52,10 @@
|
||||
plugins: [
|
||||
SwaggerUIBundle.plugins.DownloadUrl
|
||||
],
|
||||
layout: "StandaloneLayout"
|
||||
layout: "StandaloneLayout",
|
||||
apisSorter: "alpha",
|
||||
operationsSorter: "alpha",
|
||||
docExpansion: "none"
|
||||
})
|
||||
// End Swagger UI call region
|
||||
|
||||
|
||||
15
share/swagger-ui/swagger-ui-json-tree-plugin.js
Normal file
15
share/swagger-ui/swagger-ui-json-tree-plugin.js
Normal file
File diff suppressed because one or more lines are too long
1
share/swagger-ui/swagger-ui-json-tree-plugin.js.map
Normal file
1
share/swagger-ui/swagger-ui-json-tree-plugin.js.map
Normal file
File diff suppressed because one or more lines are too long
1
share/views/layouts/noop.tt
Normal file
1
share/views/layouts/noop.tt
Normal file
@@ -0,0 +1 @@
|
||||
[% content | none %]
|
||||
Reference in New Issue
Block a user