mirror of https://github.com/apache/nifi.git
NIFI-9630 Migrated Registry REST API docs to swagger-codegen (#5715)
- Added swagger-codegen-maven-plugin configuration - Removed swagger2markup-maven-plugin and asciidoctor-maven-plugin configurations - Removed generation of legacy REST API documentation and associated templates
This commit is contained in:
parent
3eef7e0a3e
commit
5022a5ee07
|
@ -85,7 +85,7 @@
|
|||
</attributes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- Unpack rest-api.html that was generated from nifi-registry-web-api and place it into a temp folder in the target dir -->
|
||||
<!-- Unpack rest-api/index.html that was generated from nifi-registry-web-api and place it into a temp folder in the target dir -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
|
@ -100,15 +100,15 @@
|
|||
<configuration>
|
||||
<includeGroupIds>org.apache.nifi.registry</includeGroupIds>
|
||||
<includeArtifactIds>nifi-registry-web-api</includeArtifactIds>
|
||||
<outputDirectory>${project.build.directory}/nifi-registry-web-api/</outputDirectory>
|
||||
<includes>**/rest-api.html</includes>
|
||||
<outputDirectory>${project.build.directory}/nifi-registry-web-api</outputDirectory>
|
||||
<includes>docs/rest-api/index.html</includes>
|
||||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>false</overWriteSnapshots>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- Copy rest-api.html from the tmp dir to the generated-docs dir where the other html docs are, this is done
|
||||
<!-- Copy rest-api/index.html from the tmp dir to the generated-docs dir where the other html docs are, this is done
|
||||
in two steps to eliminate the nested path that was created in the temp dir when running unpack-dependencies
|
||||
-->
|
||||
<plugin>
|
||||
|
@ -125,10 +125,10 @@
|
|||
<configuration>
|
||||
<target>
|
||||
<sequential>
|
||||
<echo>Copy unpacked rest-api.html to generated-docs dir</echo>
|
||||
<copy todir="${project.build.directory}/generated-docs">
|
||||
<fileset dir="${project.build.directory}/nifi-registry-web-api/docs/rest-api/">
|
||||
<include name="**" />
|
||||
<echo>Copy unpacked rest-api/index.html to generated-docs dir</echo>
|
||||
<copy tofile="${project.build.directory}/generated-docs/rest-api.html">
|
||||
<fileset dir="${project.build.directory}/nifi-registry-web-api/docs/rest-api">
|
||||
<include name="index.html" />
|
||||
</fileset>
|
||||
</copy>
|
||||
</sequential>
|
||||
|
|
|
@ -483,4 +483,4 @@ An example of using `curl` to download `my-processors-1.0.0.nar` by id and versi
|
|||
|
||||
=== Additional Actions
|
||||
|
||||
For additional actions that can be performed related to bundles, please consult the link:rest-api.html[REST API documentation].
|
||||
For additional actions that can be performed related to bundles, please consult the link:../rest-api/index.html[REST API documentation].
|
||||
|
|
|
@ -94,8 +94,6 @@
|
|||
<jsonPath>${swagger.source.dir}/security-definitions.json</jsonPath>
|
||||
</securityDefinition>
|
||||
</securityDefinitions>
|
||||
<templatePath>classpath:/templates/index.html.hbs</templatePath>
|
||||
<outputPath>${docs.dir}/rest-api/index.html</outputPath>
|
||||
<swaggerDirectory>${swagger.generated.dir}</swaggerDirectory>
|
||||
</apiSource>
|
||||
</apiSources>
|
||||
|
@ -123,6 +121,25 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>io.swagger.codegen.v3</groupId>
|
||||
<artifactId>swagger-codegen-maven-plugin</artifactId>
|
||||
<version>3.0.31</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<inputSpec>${swagger.generated.dir}/swagger.json</inputSpec>
|
||||
<output>${docs.dir}/rest-api</output>
|
||||
<language>html</language>
|
||||
<templateDirectory>src/main/resources/templates</templateDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.maven-download-plugin</groupId>
|
||||
<artifactId>download-maven-plugin</artifactId>
|
||||
|
@ -188,65 +205,6 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- Generates asciidoc files from swagger.json -->
|
||||
<plugin>
|
||||
<groupId>io.github.swagger2markup</groupId>
|
||||
<artifactId>swagger2markup-maven-plugin</artifactId>
|
||||
<version>1.3.3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>convertSwagger2markup</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<swaggerInput>${swagger.generated.dir}/swagger.json</swaggerInput>
|
||||
<outputDir>${asciidoc.generated.dir}</outputDir>
|
||||
<config>
|
||||
<swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
|
||||
<swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy>
|
||||
<swagger2markup.generatedExamplesEnabled>true</swagger2markup.generatedExamplesEnabled>
|
||||
</config>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- Generates rest-api.html from rest-api.adoc and places it in docs dir within WAR -->
|
||||
<plugin>
|
||||
<groupId>org.asciidoctor</groupId>
|
||||
<artifactId>asciidoctor-maven-plugin</artifactId>
|
||||
<version>1.5.8</version>
|
||||
<configuration>
|
||||
<sourceDirectory>${asciidoc.source.dir}</sourceDirectory>
|
||||
<sourceDocumentName>rest-api.adoc</sourceDocumentName>
|
||||
<attributes>
|
||||
<doctype>article</doctype>
|
||||
<toc />
|
||||
<toclevels>3</toclevels>
|
||||
<numbered />
|
||||
<hardbreaks />
|
||||
<sectlinks />
|
||||
<sectanchors />
|
||||
<revnumber>${project.version}</revnumber>
|
||||
<organization>Apache NiFi</organization>
|
||||
<generated>${asciidoc.generated.dir}</generated>
|
||||
</attributes>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>output-html</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>process-asciidoc</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<backend>html5</backend>
|
||||
<outputDirectory>${docs.dir}/rest-api</outputDirectory>
|
||||
<outputFile>rest-api.html</outputFile>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.rat</groupId>
|
||||
<artifactId>apache-rat-plugin</artifactId>
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
{{!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
--}}
|
||||
<div class="endpoints">
|
||||
<span class="path hidden">{{@key}}</span>
|
||||
{{#post}}
|
||||
<div class="endpoint post">
|
||||
<div class="operation-handle">
|
||||
<div class="method">POST</div>
|
||||
<div class="path mono"></div>
|
||||
<div class="summary" title="{{summary}}">{{summary}}</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{> operation}}
|
||||
</div>
|
||||
{{/post}}
|
||||
{{#get}}
|
||||
<div class="endpoint get">
|
||||
<div class="operation-handle">
|
||||
<div class="method">GET</div>
|
||||
<div class="path mono"></div>
|
||||
<div class="summary" title="{{summary}}">{{summary}}</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{> operation}}
|
||||
</div>
|
||||
{{/get}}
|
||||
{{#put}}
|
||||
<div class="endpoint put">
|
||||
<div class="operation-handle">
|
||||
<div class="method">PUT</div>
|
||||
<div class="path mono"></div>
|
||||
<div class="summary" title="{{summary}}">{{summary}}</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{> operation}}
|
||||
</div>
|
||||
{{/put}}
|
||||
{{#delete}}
|
||||
<div class="endpoint delete">
|
||||
<div class="operation-handle">
|
||||
<div class="method">DELETE</div>
|
||||
<div class="path mono"></div>
|
||||
<div class="summary" title="{{summary}}">{{summary}}</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
{{> operation}}
|
||||
</div>
|
||||
{{/delete}}
|
||||
</div>
|
|
@ -1,18 +0,0 @@
|
|||
{{!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
--}}{{!-- formatting here matters... in whitespace: pre. this is not comprehensive but sufficent for our examples --}}
|
||||
{{#each properties}} {{#ifeq type "string"}}"{{@key}}": "value"{{/ifeq}}{{#ifeq type "boolean"}}"{{@key}}": true{{/ifeq}}{{#ifeq type "integer"}}"{{@key}}": 0{{/ifeq}}{{#ifeq type "number"}}"{{@key}}": 0.0{{/ifeq}}{{#if $ref}}"{{@key}}": <span class="nested collapsed"><span class="nested-id hidden">{{basename $ref}}</span><span class="nested-example"><span class="open-object">{…}</span></span></span>{{/if}}{{#ifeq type "array"}}"{{@key}}": [{{#if items.$ref}}<span class="nested collapsed"><span class="nested-id hidden">{{basename items.$ref}}</span><span class="nested-example"><span class="open-object">{…}</span></span></span>{{else}}"value"{{/if}}]{{/ifeq}}{{#ifeq type "object"}}"{{@key}}": <span class="open-object">{
|
||||
"name": {{#if additionalProperties.$ref}}<span class="nested collapsed"><span class="nested-id hidden">{{basename additionalProperties.$ref}}</span><span class="nested-example"><span class="open-object">{…}</span></span></span>{{else}}{{#ifeq additionalProperties.type "integer"}}0{{else}}"value"{{/ifeq}}{{/if}}
|
||||
}</span>{{/ifeq}}<span class="comma">,</span>
|
||||
{{/each}}
|
|
@ -1,550 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>{{info.title}}-{{info.version}}</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<link rel="shortcut icon" href="images/nifi16.ico"/>
|
||||
<script type="text/javascript" src="../../nifi/assets/jquery/dist/jquery.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
if (typeof window.jQuery === 'undefined') {
|
||||
document.write(unescape('%3Cscript src="https://code.jquery.com/jquery-3.1.1.min.js" type="text/javascript" %3E%3C/script%3E'));
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic|Noto+Serif:400,400italic,700,700italic|Droid+Sans+Mono:400";
|
||||
|
||||
html {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
html, html a {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-shadow: 1px 1px 1px rgba(0,0,0,0.004);
|
||||
}
|
||||
|
||||
body {
|
||||
width: 62.5em;
|
||||
margin: 0 auto;
|
||||
display: block;
|
||||
font-family: "Open Sans", "DejaVu Sans", sans-serif;
|
||||
}
|
||||
|
||||
div.header {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
img.logo {
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
div.header > div.title {
|
||||
font-size: 30px;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
}
|
||||
|
||||
.sub-title {
|
||||
font-style: italic;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
div.overview {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
div.endpoint {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* get */
|
||||
|
||||
div.endpoint.get {
|
||||
border: 1px solid #174961;
|
||||
}
|
||||
|
||||
div.get div.operation-handle {
|
||||
background-color: rgba(23, 73, 97, .15);
|
||||
}
|
||||
|
||||
div.get div.method {
|
||||
background-color: #174961;
|
||||
}
|
||||
|
||||
div.get div.operation {
|
||||
border-top: 1px solid #174961;
|
||||
}
|
||||
|
||||
/* post */
|
||||
|
||||
div.endpoint.post {
|
||||
border: 1px solid #7298AC;
|
||||
}
|
||||
|
||||
div.post div.operation-handle {
|
||||
background-color: rgba(114, 152, 172, .15);
|
||||
}
|
||||
|
||||
div.post div.method {
|
||||
background-color: #7298AC;
|
||||
}
|
||||
|
||||
div.post div.operation {
|
||||
border-top: 1px solid #7298AC;
|
||||
}
|
||||
|
||||
/* put */
|
||||
|
||||
div.endpoint.put {
|
||||
border: 1px solid #063046;
|
||||
}
|
||||
|
||||
div.put div.operation-handle {
|
||||
background-color: rgba(6, 48, 70, .15);
|
||||
}
|
||||
|
||||
div.put div.method {
|
||||
background-color: #063046;
|
||||
}
|
||||
|
||||
div.put div.operation {
|
||||
border-top: 1px solid #063046;
|
||||
}
|
||||
|
||||
/* delete */
|
||||
|
||||
div.endpoint.delete {
|
||||
border: 1px solid #47758E;
|
||||
}
|
||||
|
||||
div.delete div.operation-handle {
|
||||
background-color: rgba(71, 117, 142, .15);
|
||||
}
|
||||
|
||||
div.delete div.method {
|
||||
background-color: #47758E;
|
||||
}
|
||||
|
||||
div.delete div.operation {
|
||||
border-top: 1px solid #47758E;
|
||||
}
|
||||
|
||||
/* operations */
|
||||
|
||||
div.operation-handle {
|
||||
cursor: pointer;
|
||||
padding-right: 5px;
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
div.method {
|
||||
float: left;
|
||||
width: 75px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
background-color: #7098ad;
|
||||
margin-right: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.endpoint div.path {
|
||||
float: left;
|
||||
line-height: 22px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
div.summary {
|
||||
float: right;
|
||||
font-size: 12px;
|
||||
line-height: 22px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 40%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.operation {
|
||||
padding: 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
div.operation > div.title {
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
div.operation > table {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
div.operation div.details {
|
||||
margin-left: 5px;
|
||||
margin-bottom: 5px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div.operation div.description {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
div.mediatype {
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
div.mediatype > div.title {
|
||||
float: left;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
div.mediatype div.title {
|
||||
float: left;
|
||||
}
|
||||
|
||||
div.type {
|
||||
position: fixed;
|
||||
width: 800px;
|
||||
height: 500px;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-left: -400px;
|
||||
margin-top: -250px;
|
||||
border: 3px solid #365C6A;
|
||||
box-shadow: 4px 4px 6px rgba(0, 0, 0, 0.9);
|
||||
padding: 10px;
|
||||
background-color: #eee;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
div.type-container {
|
||||
overflow-y: auto;
|
||||
height: 415px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
div.close {
|
||||
border: 1px solid #aaa;
|
||||
background-color: #ddd;
|
||||
float: right;
|
||||
margin-top: 10px;
|
||||
font-weight: bold;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
padding: 0 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.close:hover {
|
||||
background-color: #d1d1d1;
|
||||
}
|
||||
|
||||
div.section-header > div.title {
|
||||
font-size: 24px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
div.section-description {
|
||||
float: right;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
div.section-endpoints {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* tables */
|
||||
|
||||
table {
|
||||
background-color: #fefefe;
|
||||
border: 1px solid #ccc;
|
||||
border-left: 6px solid #ccc;
|
||||
color: #555;
|
||||
display: block;
|
||||
margin-bottom: 12px;
|
||||
padding: 5px 8px;
|
||||
}
|
||||
|
||||
table th {
|
||||
font-weight: bold;
|
||||
vertical-align:top;
|
||||
text-align:left;
|
||||
padding: 4px 15px;
|
||||
border-width: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
table td {
|
||||
vertical-align:top;
|
||||
text-align:left;
|
||||
padding: 2px 15px;
|
||||
border-width: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
table td:last-child {
|
||||
width: 99%;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
code.example {
|
||||
background-color: #fefefe;
|
||||
border: 1px solid #ccc;
|
||||
border-left: 6px solid #ccc;
|
||||
color: #555;
|
||||
margin-bottom: 10px;
|
||||
padding: 5px 8px;
|
||||
white-space: pre;
|
||||
display: block;
|
||||
tab-size: 4;
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
line-height: 20px
|
||||
}
|
||||
|
||||
span.nested.collapsed {
|
||||
cursor: pointer;
|
||||
border: 1px solid #7298AC;
|
||||
background-color: rgba(114, 152, 172, .15);
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
/* general */
|
||||
|
||||
.mono {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
div.clear {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a, .link {
|
||||
cursor: pointer;
|
||||
color: #1e373f;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
a:hover, .link:hover {
|
||||
color: #264c58;
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
// hide any open type dialogs
|
||||
$('html').on('click', function() {
|
||||
$('div.type').hide();
|
||||
}).on('keydown', function(e) {
|
||||
if (e.which === 27) {
|
||||
$('div.type').hide();
|
||||
}
|
||||
});
|
||||
|
||||
// populate all paths - this is necessary because the @key
|
||||
// doesn't seem to reset after iterating through a nested
|
||||
// array or object
|
||||
$('span.path').each(function() {
|
||||
var path = $(this);
|
||||
var endpoint = path.parent();
|
||||
endpoint.find('div.path').text(path.text());
|
||||
});
|
||||
|
||||
// toggles the visibility of a given operation
|
||||
$('div.operation-handle').on('click', function () {
|
||||
$(this).next('div.operation').slideToggle();
|
||||
});
|
||||
|
||||
// add support for clicking to view the definition of a type
|
||||
$('a.type-link').on('click', function(e) {
|
||||
// hide any previously shown dialogs
|
||||
$('div.type').hide();
|
||||
|
||||
// show the type selected
|
||||
var link = $(this);
|
||||
var typeId = link.text();
|
||||
$('#' + typeId).show();
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
// prevent hiding when clicking on the type dialog
|
||||
$('div.type').on('click', function(e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
// due to lack of support for @last when iterating objects in
|
||||
// handlebars we need to remove the last comma from each example
|
||||
$('code.example').find('span.comma:last').remove();
|
||||
|
||||
// populate nested examples
|
||||
$('code.example').on('click', 'span.nested', function(e) {
|
||||
var nested = $(this).removeClass('collapsed');
|
||||
var nestedId = nested.find('span.nested-id');
|
||||
var nestedExample = nested.find('span.nested-example');
|
||||
|
||||
// get the id of the nested example
|
||||
var typeId = nestedId.text();
|
||||
var example = $('#' + typeId + ' code.example').html();
|
||||
var depth = nestedId.parents('span.open-object').length;
|
||||
|
||||
// tab over as appropriate
|
||||
example = example.replace(/(\r\n|\r|\n)/g, function(match) {
|
||||
var tab = '\t';
|
||||
for (var i = 0; i < depth - 1; i++) {
|
||||
tab += '\t';
|
||||
}
|
||||
return match + tab;
|
||||
});
|
||||
|
||||
// copy over the example
|
||||
nestedExample.html(example);
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
// handle close button
|
||||
$('div.close').on('click', function() {
|
||||
$(this).closest('div.type').hide();
|
||||
});
|
||||
|
||||
// function for organizing the endpoints
|
||||
var organizeEndpoints = function(term, container) {
|
||||
$('div.unorganized > div.endpoints').each(function() {
|
||||
var endpoints = $(this);
|
||||
var path = endpoints.find('div.path').text();
|
||||
|
||||
if (term === null || path.indexOf(term) === 0) {
|
||||
endpoints.detach().appendTo(container);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// organize the endpoints
|
||||
organizeEndpoints('/buckets', $('#bucket-endpoints'));
|
||||
organizeEndpoints('/items', $('#item-endpoints'));
|
||||
organizeEndpoints('/flows', $('#flow-endpoints'));
|
||||
organizeEndpoints('/bundles', $('#bundle-endpoints'));
|
||||
organizeEndpoints('/extensions', $('#extension-endpoints'));
|
||||
organizeEndpoints('/extension-repository', $('#extension-repository-endpoints'));
|
||||
organizeEndpoints('/tenants', $('#tenant-endpoints'));
|
||||
organizeEndpoints('/policies', $('#policy-endpoints'));
|
||||
organizeEndpoints('/access', $('#access-endpoints'));
|
||||
|
||||
// handle expanding/collapsing the sections
|
||||
$('div.section-header > div.title').on('click', function() {
|
||||
$(this).parent('div.section-header').next('div.section-endpoints').slideToggle();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<img class="logo" src="images/bgNifiLogo.png" alt="NiFi Logo"/>
|
||||
<div class="title">{{basePath}}</div>
|
||||
<div class="sub-title">{{info.title}} {{info.version}}</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<div class="overview">{{info.description}}</div>
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="title link">Buckets</div>
|
||||
<div class="sub-title section-description">Bucket endpoints</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div id="bucket-endpoints" class="section-endpoints hidden"></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="title link">Items</div>
|
||||
<div class="sub-title section-description">Item endpoints</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div id="item-endpoints" class="section-endpoints hidden"></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="title link">Flows</div>
|
||||
<div class="sub-title section-description">Flow endpoints</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div id="flow-endpoints" class="section-endpoints hidden"></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="title link">Bundles</div>
|
||||
<div class="sub-title section-description">Bundle endpoints</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div id="bundle-endpoints" class="section-endpoints hidden"></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="title link">Extensions</div>
|
||||
<div class="sub-title section-description">Extension endpoints</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div id="extension-endpoints" class="section-endpoints hidden"></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="title link">Extension Repository</div>
|
||||
<div class="sub-title section-description">Extension Repository endpoints</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div id="extension-repository-endpoints" class="section-endpoints hidden"></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="title link">Tenants</div>
|
||||
<div class="sub-title section-description">Tenant endpoints</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div id="tenant-endpoints" class="section-endpoints hidden"></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="title link">Policies</div>
|
||||
<div class="sub-title section-description">Policy endpoints</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div id="policy-endpoints" class="section-endpoints hidden"></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="title link">Access</div>
|
||||
<div class="sub-title section-description">Access endpoints</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div id="access-endpoints" class="section-endpoints hidden"></div>
|
||||
</div>
|
||||
|
||||
<div class="unorganized hidden">
|
||||
{{#each paths}}
|
||||
{{> endpoint}}
|
||||
{{/each}}
|
||||
</div>
|
||||
{{#each definitions}}
|
||||
{{> type}}
|
||||
{{/each}}
|
||||
</body>
|
||||
</html>
|
|
@ -1,110 +0,0 @@
|
|||
{{!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
--}}
|
||||
<div class="operation hidden">
|
||||
{{#if description}}
|
||||
<div class="description">
|
||||
{{description}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="title">Request</div>
|
||||
<div class="mediatypes details">
|
||||
{{#if consumes}}
|
||||
<div class="mediatype"><div class="title">consumes:</div><div class="mono">{{join consumes ", "}}</div><div class="clear"></div></div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if parameters}}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Location</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{/if}}
|
||||
{{#each parameters}}
|
||||
<tr>
|
||||
<td>{{#ifeq in "body"}}{{else}}{{name}}{{/ifeq}}</td>
|
||||
<td>{{in}}</td>
|
||||
{{#ifeq in "body"}}
|
||||
<td>
|
||||
{{#ifeq schema.type "array"}}Array[<a class="type-link" href="javascript:void(0);">{{basename schema.items.$ref}}</a>]{{/ifeq}}
|
||||
{{#schema.$ref}}<a class="type-link" href="javascript:void(0);">{{basename schema.$ref}}</a> {{/schema.$ref}}
|
||||
</td>
|
||||
{{else}}
|
||||
{{#ifeq type "array"}}
|
||||
<td>Array[{{items.type}}] ({{collectionFormat}})</td>
|
||||
{{else}}
|
||||
{{#ifeq type "ref"}}
|
||||
<td>string</td>
|
||||
{{else}}
|
||||
<td>{{type}} {{#format}}({{format}}){{/format}}</td>
|
||||
{{/ifeq}}
|
||||
{{/ifeq}}
|
||||
{{/ifeq}}
|
||||
<td>{{description}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{#if parameters}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{/if}}
|
||||
<div class="title">Response</div>
|
||||
<div class="mediatypes details">
|
||||
{{#if produces}}
|
||||
<div class="mediatype"><div class="title">produces:</div><div class="mono">{{join produces ", "}}</div><div class="clear"></div></div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Status Code</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each responses}}
|
||||
<tr>
|
||||
<td>{{@key}}</td>
|
||||
<td>
|
||||
{{#if schema}}
|
||||
{{#ifeq schema.type "array"}}
|
||||
{{#if schema.items.$ref}}
|
||||
array[<a class="type-link" href="javascript:void(0);">{{basename schema.items.$ref}}</a>]
|
||||
{{else}}
|
||||
array[{{schema.items.type}}]
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#schema.$ref}}<a class="type-link" href="javascript:void(0);">{{basename schema.$ref}}</a>{{/schema.$ref}}
|
||||
{{/ifeq}}
|
||||
{{else}}
|
||||
string
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>{{description}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{#if vendorExtensions.x-access-policy}}
|
||||
<div class="title">Authorization</div>
|
||||
<div class="authorization details">
|
||||
Requires access policy: {{vendorExtensions.x-access-policy.action}}:{{vendorExtensions.x-access-policy.resource}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
|
@ -0,0 +1,138 @@
|
|||
{{!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
--}}
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-stretch: normal;
|
||||
src: url(https://fonts.gstatic.com/s/opensans/v27/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsiH0B4gaVI.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Open Sans","DejaVu Sans",sans-serif;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
max-width: 62.5em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.75em;
|
||||
color: rgba(0,0,0,0.85);
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
line-height: 1.2;
|
||||
word-spacing: -.05em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
color: #7a2518;
|
||||
line-height: 1.2;
|
||||
word-spacing: -.05em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #2156a5;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
h1 > a {
|
||||
color: #7a2518;
|
||||
}
|
||||
|
||||
h2 > a {
|
||||
color: #7a2518;
|
||||
}
|
||||
|
||||
h3 > a {
|
||||
color: #7a2518;
|
||||
}
|
||||
|
||||
h4 > a {
|
||||
color: #7a2518;
|
||||
}
|
||||
|
||||
h5 > a {
|
||||
color: #7a2518;
|
||||
}
|
||||
|
||||
h6 > a {
|
||||
color: #7a2518;
|
||||
}
|
||||
|
||||
pre {
|
||||
background: #f7f7f8;
|
||||
line-height: 1.45;
|
||||
padding: 1em;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.app-desc {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.license-info {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.license-url {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.http-method {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
code {
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
code.huge {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.up {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.field-items {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.param-desc {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.param-type {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.param-header {
|
||||
font-weight: bold;
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
{{!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
--}}
|
||||
<div id="{{@key}}" class="type hidden">
|
||||
<h3>{{@key}}</h3>
|
||||
<div class="type-container">
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Required</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
{{#each properties}}
|
||||
<tr>
|
||||
<td>{{@key}}</td>
|
||||
<td>
|
||||
{{#ifeq type "array"}}
|
||||
{{#items.$ref}}
|
||||
{{type}}[<a class="type-link" href="javascript:void(0);">{{basename items.$ref}}</a>]
|
||||
{{/items.$ref}}
|
||||
{{^items.$ref}}
|
||||
{{type}}[{{items.type}}]
|
||||
{{/items.$ref}}
|
||||
{{else}}
|
||||
{{#$ref}}
|
||||
<a class="type-link" href="javascript:void(0);">{{basename $ref}}</a>
|
||||
{{/$ref}}
|
||||
{{^$ref}}
|
||||
{{type}}{{#format}} ({{format}}){{/format}}
|
||||
{{/$ref}}
|
||||
{{/ifeq}}
|
||||
</td>
|
||||
<td>{{#required}}required{{/required}}{{^required}}optional{{/required}}</td>
|
||||
<td>{{#description}}{{{description}}}{{/description}}
|
||||
{{#if enum}} Allowable values: {{join enum ", "}}{{/if}}
|
||||
{{#if readOnly}} This property is read only.{{/if}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</table>
|
||||
<h4>Example JSON</h4>
|
||||
<code class="example"><span class="open-object">{{{> example}}}</span></code>
|
||||
</div>
|
||||
<div class="close">Close</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
|
@ -68,7 +68,7 @@
|
|||
<div class="header">Developer</div>
|
||||
<div id="developer-links" class="component-links">
|
||||
<ul>
|
||||
<li class="component-item"><a class="document-link rest-api" href="rest-api/rest-api.html" target="component-usage">REST API</a></li>
|
||||
<li class="component-item"><a class="document-link rest-api" href="rest-api/index.html" target="component-usage">REST API</a></li>
|
||||
</ul>
|
||||
<span class="no-matching no-components hidden">No matching developer guides</span>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue