mirror of https://github.com/apache/archiva.git
Moving from enunciate to OpenAPI documentation
This commit is contained in:
parent
20257a2d59
commit
167c335856
|
@ -31,50 +31,43 @@
|
|||
<properties>
|
||||
<enunciate.docsDir>${project.build.outputDirectory}/rest-docs-archiva-rest-api</enunciate.docsDir>
|
||||
<site.staging.base>${project.parent.parent.parent.basedir}</site.staging.base>
|
||||
<swagger-maven-plugin-version>2.1.2</swagger-maven-plugin-version>
|
||||
<io.swagger.version>2.1.2</io.swagger.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>archiva-security-common</artifactId>
|
||||
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>archiva-repository-admin-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>archiva-policies</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>metadata-model</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva.maven</groupId>
|
||||
<artifactId>archiva-maven-model</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>archiva-repository-scanner</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>repository-statistics</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>metadata-statistics-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.archiva.redback</groupId>
|
||||
<artifactId>redback-authorization-api</artifactId>
|
||||
|
@ -89,6 +82,42 @@
|
|||
<groupId>javax.ws.rs</groupId>
|
||||
<artifactId>javax.ws.rs-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger.core.v3</groupId>
|
||||
<artifactId>swagger-core</artifactId>
|
||||
<scope>compile</scope>
|
||||
<version>${io.swagger.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>javax.ws.rs</groupId>
|
||||
<artifactId>jsr311-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger.core.v3</groupId>
|
||||
<artifactId>swagger-jaxrs2</artifactId>
|
||||
<version>${io.swagger.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>javax.ws.rs</groupId>
|
||||
<artifactId>jsr311-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.swagger.core.v3</groupId>
|
||||
<artifactId>swagger-annotations</artifactId>
|
||||
<version>${io.swagger.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>javax.ws.rs</groupId>
|
||||
<artifactId>jsr311-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- normally not needed but here for wadl feature currently in cxf -->
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
|
@ -104,6 +133,17 @@
|
|||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.rat</groupId>
|
||||
<artifactId>apache-rat-plugin</artifactId>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>target/generated</exclude>
|
||||
<exclude>src/main/resources/templates/*</exclude>
|
||||
<exclude>src/main/resources/openapi-codegen-ignore</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
|
@ -116,7 +156,83 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>io.swagger.core.v3</groupId>
|
||||
<artifactId>swagger-maven-plugin</artifactId>
|
||||
<version>${swagger-maven-plugin-version}</version>
|
||||
<configuration>
|
||||
<outputFileName>openapi</outputFileName>
|
||||
<outputPath>${project.build.directory}/generated</outputPath>
|
||||
<outputFormat>JSONANDYAML</outputFormat>
|
||||
<resourcePackages>
|
||||
<package>org.apache.archiva.rest.api</package>
|
||||
</resourcePackages>
|
||||
<prettyPrint>TRUE</prettyPrint>
|
||||
<configurationFilePath>${project.basedir}/src/main/resources/openapi-configuration.yaml</configurationFilePath>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>resolve</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>io.swagger.codegen.v3</groupId>
|
||||
<artifactId>swagger-codegen-maven-plugin</artifactId>
|
||||
<version>3.0.20</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<inputSpec>${project.build.directory}/generated/openapi.yaml</inputSpec>
|
||||
<language>html</language>
|
||||
<output>${project.build.directory}/generated-sources</output>
|
||||
<ignoreFileOverride>${project.basedir}/src/main/resources/openapi-codegen-ignore</ignoreFileOverride>
|
||||
<templateDirectory>${project.basedir}/src/main/resources/templates</templateDirectory>
|
||||
<supportingFilesToGenerate>index.html,index2.html</supportingFilesToGenerate>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-resources</id>
|
||||
<phase>site</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${basedir}/target/site/openapi/</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>${project.build.directory}/generated</directory> <!-- source directory -->
|
||||
<filtering>false</filtering>
|
||||
<include>openapi.json</include>
|
||||
<include>openapi.yaml</include>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>${project.build.directory}/generated-sources/</directory>
|
||||
<filtering>false</filtering>
|
||||
<include>**/*</include>
|
||||
<exclude>.swagger-codegen/**</exclude>
|
||||
<exclude>.swagger-codegen-ignore</exclude>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
<title>Apache Archiva REST API</title>
|
||||
<modules>
|
||||
|
||||
<obj-c-xml-client disabled="true" />
|
||||
<csharp-xml-client disabled="true" />
|
||||
<cxf disabled="false"/>
|
||||
<jersey disabled="true" />
|
||||
<c disabled="true"/>
|
|
@ -18,6 +18,9 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.admin.model.beans.FileType;
|
||||
import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
|
||||
import org.apache.archiva.admin.model.beans.NetworkConfiguration;
|
||||
|
@ -42,6 +45,7 @@ import java.util.List;
|
|||
* @since 1.4-M1
|
||||
*/
|
||||
@Path( "/archivaAdministrationService/" )
|
||||
@Tag( name = "Administration", description = "Admin Service" )
|
||||
public interface ArchivaAdministrationService
|
||||
{
|
||||
@Path( "getLegacyArtifactPaths" )
|
||||
|
@ -77,7 +81,15 @@ public interface ArchivaAdministrationService
|
|||
@GET
|
||||
@Produces( {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML} )
|
||||
@RedbackAuthorization( permissions = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
|
||||
FileType getFileType( @QueryParam( "fileTypeId" ) String fileTypeId )
|
||||
@Operation(
|
||||
summary = "Return the file type and its patterns",
|
||||
description = "Returns a object that contains the file type and the configured patterns for this type"
|
||||
|
||||
)
|
||||
FileType getFileType(
|
||||
@Parameter( name = "fileTypeId", description = "The identifier of the file type",
|
||||
allowEmptyValue = false, required = true )
|
||||
@QueryParam( "fileTypeId" ) String fileTypeId )
|
||||
throws ArchivaRestServiceException;
|
||||
|
||||
@Path( "addFileType" )
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.admin.model.beans.ArchivaRuntimeConfiguration;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.security.common.ArchivaRoleConstants;
|
||||
|
@ -34,6 +35,7 @@ import javax.ws.rs.core.MediaType;
|
|||
* @since 1.4-M4
|
||||
*/
|
||||
@Path( "/archivaRuntimeConfigurationService/" )
|
||||
@Tag( name="Configuration" )
|
||||
public interface ArchivaRuntimeConfigurationService
|
||||
{
|
||||
@Path( "archivaRuntimeConfiguration" )
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.admin.model.beans.ManagedRepository;
|
||||
import org.apache.archiva.maven2.model.Artifact;
|
||||
import org.apache.archiva.maven2.model.TreeEntry;
|
||||
|
@ -46,6 +47,7 @@ import java.util.List;
|
|||
* @since 1.4-M3
|
||||
*/
|
||||
@Path("/browseService/")
|
||||
@Tag( name = "Browse", description = "Repository Browse Service")
|
||||
public interface BrowseService
|
||||
{
|
||||
@Path("rootGroups")
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
|
||||
import javax.ws.rs.GET;
|
||||
|
@ -33,6 +34,7 @@ import javax.ws.rs.core.MediaType;
|
|||
* @since 1.4-M3
|
||||
*/
|
||||
@Path( "/commonServices/" )
|
||||
@Tag( name="ArchivaCommon" )
|
||||
public interface CommonServices
|
||||
{
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.tags.Tags;
|
||||
import org.apache.archiva.admin.model.beans.ManagedRepository;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.rest.api.model.ArchivaRepositoryStatistics;
|
||||
|
@ -39,6 +41,10 @@ import java.util.List;
|
|||
* @since 1.4-M1
|
||||
*/
|
||||
@Path( "/managedRepositoriesService/" )
|
||||
@Tags( {
|
||||
@Tag( name = "ManagedRepositories", description = "Administration for managed repositories" ),
|
||||
@Tag( name = "Repositories" )
|
||||
})
|
||||
public interface ManagedRepositoriesService
|
||||
{
|
||||
@Path( "getManagedRepositories" )
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.maven2.model.Artifact;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.security.common.ArchivaRoleConstants;
|
||||
|
@ -36,6 +37,7 @@ import java.util.List;
|
|||
* @since 1.4-M3
|
||||
*/
|
||||
@Path ("/mergeRepositoriesService/")
|
||||
@Tag(name="RepositoryMerge", description = "Merging repositories")
|
||||
public interface MergeRepositoriesService
|
||||
{
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.admin.model.beans.NetworkProxy;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.security.common.ArchivaRoleConstants;
|
||||
|
@ -36,6 +37,7 @@ import java.util.List;
|
|||
* @since 1.4-M1
|
||||
*/
|
||||
@Path( "/networkProxyService/" )
|
||||
@Tag(name="Proxy", description = "Managing Network Proxies")
|
||||
public interface NetworkProxyService
|
||||
{
|
||||
@Path( "getNetworkProxies" )
|
||||
|
|
|
@ -19,6 +19,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
|
||||
import javax.ws.rs.GET;
|
||||
|
@ -31,6 +32,7 @@ import javax.ws.rs.core.MediaType;
|
|||
* @since 1.4-M1
|
||||
*/
|
||||
@Path( "/pingService/" )
|
||||
@Tag(name="Ping")
|
||||
public interface PingService
|
||||
{
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
|
||||
import javax.ws.rs.GET;
|
||||
|
@ -32,6 +33,7 @@ import javax.ws.rs.core.MediaType;
|
|||
* @since 1.4.0
|
||||
*/
|
||||
@Path("/pluginsService/")
|
||||
@Tag( name="Plugins" )
|
||||
public interface PluginsService
|
||||
{
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.admin.model.beans.ProxyConnectorRule;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.security.common.ArchivaRoleConstants;
|
||||
|
@ -37,6 +38,7 @@ import java.util.List;
|
|||
* @since 1.4-M3
|
||||
*/
|
||||
@Path ( "/proxyConnectorRuleService/" )
|
||||
@Tag(name="Proxy-Repository", description="Handling of proxy repositories that delegate to remote repositories")
|
||||
public interface ProxyConnectorRuleService
|
||||
{
|
||||
@Path ( "proxyConnectorRules" )
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.admin.model.beans.ProxyConnector;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.rest.api.model.PolicyInformation;
|
||||
|
@ -39,6 +40,7 @@ import java.util.List;
|
|||
* @since 1.4-M1
|
||||
*/
|
||||
@Path( "/proxyConnectorService/" )
|
||||
@Tag(name="Proxy-Repository")
|
||||
public interface ProxyConnectorService
|
||||
{
|
||||
@Path( "getProxyConnectors" )
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.admin.model.beans.LdapConfiguration;
|
||||
import org.apache.archiva.admin.model.beans.RedbackRuntimeConfiguration;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
|
@ -40,6 +41,7 @@ import java.util.List;
|
|||
* @since 1.4-M4
|
||||
*/
|
||||
@Path("/redbackRuntimeConfigurationService/")
|
||||
@Tag( name="Redback",description = "Configuration of Redback Backend")
|
||||
public interface RedbackRuntimeConfigurationService
|
||||
{
|
||||
@Path("redbackRuntimeConfiguration")
|
||||
|
|
|
@ -19,6 +19,8 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.tags.Tags;
|
||||
import org.apache.archiva.admin.model.beans.RemoteRepository;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.security.common.ArchivaRoleConstants;
|
||||
|
@ -37,6 +39,10 @@ import java.util.List;
|
|||
* @since 1.4-M1
|
||||
*/
|
||||
@Path("/remoteRepositoriesService/")
|
||||
@Tags( {
|
||||
@Tag( name = "RemoteRepositories", description = "Administration of remote repositories" ),
|
||||
@Tag( name = "Repositories", description = "Administration of remote repositories" )
|
||||
})
|
||||
public interface RemoteRepositoriesService
|
||||
{
|
||||
@Path("getRemoteRepositories")
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.metadata.model.facets.RepositoryProblemFacet;
|
||||
import org.apache.archiva.metadata.repository.stats.model.RepositoryStatistics;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
|
@ -39,6 +40,7 @@ import java.util.List;
|
|||
* @since 1.4-M3
|
||||
*/
|
||||
@Path( "/reportServices/" )
|
||||
@Tag( name="Statistics", description = "Statistics and Health reports")
|
||||
public interface ReportRepositoriesService
|
||||
{
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.maven2.model.Artifact;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.repository.scanner.RepositoryScanStatistics;
|
||||
|
@ -41,6 +42,7 @@ import javax.ws.rs.core.MediaType;
|
|||
* @since 1.4-M1
|
||||
*/
|
||||
@Path ("/repositoriesService/")
|
||||
@Tag( name="Repositories", description = "Managing repositories")
|
||||
public interface RepositoriesService
|
||||
{
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.admin.model.beans.RepositoryGroup;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.security.common.ArchivaRoleConstants;
|
||||
|
@ -37,6 +38,7 @@ import java.util.List;
|
|||
* @since 1.4-M1
|
||||
*/
|
||||
@Path( "/repositoryGroupService/" )
|
||||
@Tag( name="Repository-Group", description = "Managing of groups of repositories")
|
||||
public interface RepositoryGroupService
|
||||
{
|
||||
@Path( "getRepositoriesGroups" )
|
||||
|
|
|
@ -20,6 +20,7 @@ package org.apache.archiva.rest.api.services;
|
|||
*/
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.maven2.model.Artifact;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.rest.api.model.ChecksumSearch;
|
||||
|
@ -37,6 +38,7 @@ import javax.ws.rs.core.Response;
|
|||
import java.util.List;
|
||||
|
||||
@Path( "/searchService/" )
|
||||
@Tag( name="Search", description = "Searching repositories")
|
||||
public interface SearchService
|
||||
{
|
||||
/*
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.apache.archiva.rest.api.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.apache.archiva.redback.authorization.RedbackAuthorization;
|
||||
import org.apache.archiva.rest.api.model.CacheEntry;
|
||||
import org.apache.archiva.rest.api.model.QueueEntry;
|
||||
|
@ -36,6 +37,7 @@ import java.util.List;
|
|||
* @since 1.4-M3
|
||||
*/
|
||||
@Path( "/systemStatusService/" )
|
||||
@Tag( name="System", description = "System information")
|
||||
public interface SystemStatusService
|
||||
{
|
||||
@Path( "memoryStatus" )
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
resourcePackages:
|
||||
- org.apache.archiva.rest.api
|
||||
prettyPrint: true
|
||||
cacheTTL: 0
|
||||
openAPI:
|
||||
info:
|
||||
version: '3.0'
|
||||
title: Apache Archiva REST API
|
||||
description: 'This is the Apache Archiva REST API documentation'
|
||||
termsOfService: https://archiva.apache.org
|
||||
contact:
|
||||
email: dev@archiva.apache.org
|
||||
url: https://archiva.apache.org/index.html
|
||||
license:
|
||||
name: Apache 2.0
|
||||
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
@ -0,0 +1,4 @@
|
|||
{{#is this 'body-param'}}<div class="param">{{baseName}} {{#baseType}}<a href="#{{baseType}}">{{baseType}}</a>{{/baseType}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
|
||||
|
||||
<div class="param-desc"><span class="param-type">Body Parameter</span> — {{unescapedDescription}} {{#defaultValue}}default: {{{defaultValue}}}{{/defaultValue}}</div>{{/is}}
|
||||
{{#example}}<div class="param-desc"><span class="param-type">example: <code>{{example}}</code></span></div>{{/example}}
|
|
@ -0,0 +1,3 @@
|
|||
{{#is this 'form-param'}}<div class="param">{{baseName}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
|
||||
|
||||
<div class="param-desc"><span class="param-type">Form Parameter</span> — {{unescapedDescription}} {{#defaultValue}}default: {{{defaultValue}}} {{/defaultValue}}{{#dataFormat}}format: {{{dataFormat}}}{{/dataFormat}}</div>{{/is}}
|
|
@ -0,0 +1,3 @@
|
|||
{{#is this 'header-param'}}<div class="param">{{baseName}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
|
||||
|
||||
<div class="param-desc"><span class="param-type">Header Parameter</span> — {{unescapedDescription}} {{#defaultValue}}default: {{{defaultValue}}} {{/defaultValue}}{{#dataFormat}}format: {{{dataFormat}}}{{/dataFormat}}</div>{{/is}}
|
|
@ -0,0 +1,213 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>{{{appName}}}</title>
|
||||
<style type="text/css">
|
||||
{{>style.css}}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>{{{appName}}}</h1>
|
||||
<div class="app-desc">{{{appDescription}}}</div>
|
||||
{{#infoUrl}}<div class="app-desc">More information: <a href="{{{infoUrl}}}">{{{infoUrl}}}</a></div>{{/infoUrl}}
|
||||
{{#infoEmail}}<div class="app-desc">Contact Info: <a href="{{{infoEmail}}}">{{{infoEmail}}}</a></div>{{/infoEmail}}
|
||||
{{#version}}<div class="app-desc">Version: {{{version}}}</div>{{/version}}
|
||||
{{#basePathWithoutHost}}<div class="app-desc">BasePath:{{basePathWithoutHost}}</div>{{/basePathWithoutHost}}
|
||||
<div class="license-info">{{{licenseInfo}}}</div>
|
||||
<div class="license-url">{{{licenseUrl}}}</div>
|
||||
<h2>Access</h2>
|
||||
{{#hasAuthMethods}}
|
||||
<ol>
|
||||
{{#authMethods}}
|
||||
<li>{{#is this 'basic'}}HTTP Basic Authentication{{/is}}{{#is this 'oauth'}}OAuth AuthorizationUrl:{{authorizationUrl}}TokenUrl:{{tokenUrl}}{{/is}}{{#is this 'api-key'}}APIKey KeyParamName:{{keyParamName}} KeyInQuery:{{isKeyInQuery}} KeyInHeader:{{isKeyInHeader}}{{/is}}</li>
|
||||
{{/authMethods}}
|
||||
</ol>
|
||||
{{/hasAuthMethods}}
|
||||
|
||||
<h2><a name="__Methods">Methods</a></h2>
|
||||
[ Jump to <a href="#__Models">Models</a> ]
|
||||
|
||||
{{! for the tables of content, I cheat and don't use CSS styles.... }}
|
||||
<h3>Table of Contents </h3>
|
||||
<div class="method-summary">{{access}}</div>
|
||||
{{#apiInfo}}
|
||||
{{#apis}}
|
||||
{{#operations}}
|
||||
<h4><a href="#{{baseName}}">{{baseName}}</a></h4>
|
||||
<ul>
|
||||
{{#operation}}
|
||||
<li><a href="#{{nickname}}"><code><span class="http-method">{{httpMethod}}</span> {{path}}</code></a></li>
|
||||
{{/operation}}
|
||||
</ul>
|
||||
{{/operations}}
|
||||
{{/apis}}
|
||||
{{/apiInfo}}
|
||||
|
||||
{{#apiInfo}}
|
||||
{{#apis}}
|
||||
{{#operations}}
|
||||
<h1><a name="{{baseName}}">{{baseName}}</a></h1>
|
||||
{{#operation}}
|
||||
<div class="method"><a name="{{nickname}}"></a>
|
||||
<div class="method-path">
|
||||
<a class="up" href="#__Methods">Up</a>
|
||||
<pre class="{{httpMethod}}"><code class="huge"><span class="http-method">{{httpMethod}}</span> {{path}}</code></pre></div>
|
||||
<div class="method-summary">{{summary}} (<span class="nickname">{{nickname}}</span>)</div>
|
||||
{{! notes is operation.description. So why rename it and make it super confusing???? }}
|
||||
<div class="method-notes">{{notes}}</div>
|
||||
|
||||
{{#hasPathParams}}
|
||||
<h3 class="field-label">Path parameters</h3>
|
||||
<div class="field-items">
|
||||
{{#pathParams}}{{>pathParam}}{{/pathParams}}
|
||||
</div> <!-- field-items -->
|
||||
{{/hasPathParams}}
|
||||
|
||||
{{#has this 'consumes'}}
|
||||
<h3 class="field-label">Consumes</h3>
|
||||
This API call consumes the following media types via the <span class="header">Content-Type</span> request header:
|
||||
<ul>
|
||||
{{#consumes}}
|
||||
<li><code>{{{mediaType}}}</code></li>
|
||||
{{/consumes}}
|
||||
</ul>
|
||||
{{/has}}
|
||||
|
||||
{{#hasBodyParam}}
|
||||
<h3 class="field-label">Request body</h3>
|
||||
<div class="field-items">
|
||||
{{#bodyParams}}{{>bodyParam}}{{/bodyParams}}
|
||||
</div> <!-- field-items -->
|
||||
{{/hasBodyParam}}
|
||||
|
||||
{{#hasHeaderParams}}
|
||||
<h3 class="field-label">Request headers</h3>
|
||||
<div class="field-items">
|
||||
{{#headerParam}}{{>headerParam}}{{/headerParam}}
|
||||
</div> <!-- field-items -->
|
||||
{{/hasHeaderParams}}
|
||||
|
||||
{{#hasQueryParams}}
|
||||
<h3 class="field-label">Query parameters</h3>
|
||||
<div class="field-items">
|
||||
{{#queryParams}}{{>queryParam}}{{/queryParams}}
|
||||
</div> <!-- field-items -->
|
||||
{{/hasQueryParams}}
|
||||
|
||||
{{#hasFormParams}}
|
||||
<h3 class="field-label">Form parameters</h3>
|
||||
<div class="field-items">
|
||||
{{#formParams}}{{>formParam}}{{/formParams}}
|
||||
</div> <!-- field-items -->
|
||||
{{/hasFormParams}}
|
||||
|
||||
{{#returnType}}
|
||||
<h3 class="field-label">Return type</h3>
|
||||
<div class="return-type">
|
||||
{{#hasReference}}{{^returnSimpleType}}{{returnContainer}}[{{/returnSimpleType}}<a href="#{{returnBaseType}}">{{returnBaseType}}</a>{{^returnSimpleType}}]{{/returnSimpleType}}{{/hasReference}}
|
||||
{{^hasReference}}{{returnType}}{{/hasReference}}
|
||||
</div>
|
||||
{{/returnType}}
|
||||
|
||||
<!--Todo: process Response Object and its headers, schema, examples -->
|
||||
|
||||
{{#hasExamples}}
|
||||
{{#examples}}
|
||||
<h3 class="field-label">Example data</h3>
|
||||
<div class="example-data-content-type">Content-Type: {{{contentType}}}</div>
|
||||
<pre class="example"><code>{{{example}}}</code></pre>
|
||||
{{/examples}}
|
||||
{{/hasExamples}}
|
||||
|
||||
{{#has this 'produces'}}
|
||||
<h3 class="field-label">Produces</h3>
|
||||
This API call produces the following media types according to the <span class="header">Accept</span> request header;
|
||||
the media type will be conveyed by the <span class="header">Content-Type</span> response header.
|
||||
<ul>
|
||||
{{#produces}}
|
||||
<li><code>{{{mediaType}}}</code></li>
|
||||
{{/produces}}
|
||||
</ul>
|
||||
{{/has}}
|
||||
|
||||
<h3 class="field-label">Responses</h3>
|
||||
{{#responses}}
|
||||
<h4 class="field-label">{{code}}</h4>
|
||||
{{message}}
|
||||
{{#simpleType}}<a href="#{{dataType}}">{{dataType}}</a>{{/simpleType}}
|
||||
{{#examples}}
|
||||
<h3 class="field-label">Example data</h3>
|
||||
<div class="example-data-content-type">Content-Type: {{{contentType}}}</div>
|
||||
<pre class="example"><code>{{example}}</code></pre>
|
||||
{{/examples}}
|
||||
{{/responses}}
|
||||
</div> <!-- method -->
|
||||
<hr/>
|
||||
{{/operation}}
|
||||
{{/operations}}
|
||||
{{/apis}}
|
||||
{{/apiInfo}}
|
||||
|
||||
<h2><a name="__Models">Models</a></h2>
|
||||
[ Jump to <a href="#__Methods">Methods</a> ]
|
||||
|
||||
<h3>Table of Contents</h3>
|
||||
<ol>
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
<li><a href="#{{name}}"><code>{{name}}</code>{{#title}} - {{title}}{{/title}}</a></li>
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
</ol>
|
||||
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
<div class="model">
|
||||
<h3><a name="{{name}}"><code>{{name}}</code>{{#title}} - {{title}}{{/title}}</a> <a class="up" href="#__Models">Up</a></h3>
|
||||
{{#unescapedDescription}}<div class='model-description'>{{unescapedDescription}}</div>{{/unescapedDescription}}
|
||||
<div class="field-items">
|
||||
{{#vars}}<div class="param">{{name}} {{^required}}(optional){{/required}}</div><div class="param-desc"><span class="param-type">{{#isNot this 'primitive-type'}}<a href="#{{complexType}}">{{datatype}}</a>{{/isNot}}</span> {{unescapedDescription}} {{#dataFormat}}format: {{{dataFormat}}}{{/dataFormat}}</div>
|
||||
{{#is this 'enum'}}
|
||||
<div class="param-enum-header">Enum:</div>
|
||||
{{#_enum}}<div class="param-enum">{{this}}</div>{{/_enum}}
|
||||
{{/is}}
|
||||
{{#example}}
|
||||
<div class="param-desc"><span class="param-type">example: {{example}}</span></div>
|
||||
{{/example}}
|
||||
{{#vendorExtensions.oneOf-model}}
|
||||
<div class="param-desc"><span class="param-type">oneOf:</span>
|
||||
{{#vendorExtensions.x-model-names}}
|
||||
<a href="#{{this}}"><code>{{this}}</code></a>
|
||||
{{/vendorExtensions.x-model-names}}
|
||||
</div>
|
||||
{{/vendorExtensions.oneOf-model}}
|
||||
{{#vendorExtensions.anyOf-model}}
|
||||
<div class="param-desc"><span class="param-type">anyOf:</span>
|
||||
{{#vendorExtensions.x-model-names}}
|
||||
<a href="#{{this}}"><code>{{this}}</code></a>
|
||||
{{/vendorExtensions.x-model-names}}
|
||||
</div>
|
||||
{{/vendorExtensions.anyOf-model}}
|
||||
{{#items}}
|
||||
{{#vendorExtensions.oneOf-model}}
|
||||
<div class="param-desc"><span class="param-type">items oneOf:</span>
|
||||
{{#vendorExtensions.x-model-names}}
|
||||
<a href="#{{this}}"><code>{{this}}</code></a>
|
||||
{{/vendorExtensions.x-model-names}}
|
||||
</div>
|
||||
{{/vendorExtensions.oneOf-model}}
|
||||
{{#vendorExtensions.anyOf-model}}
|
||||
<div class="param-desc"><span class="param-type">items anyOf:</span>
|
||||
{{#vendorExtensions.x-model-names}}
|
||||
<a href="#{{this}}"><code>{{this}}</code></a>
|
||||
{{/vendorExtensions.x-model-names}}
|
||||
</div>
|
||||
{{/vendorExtensions.anyOf-model}}
|
||||
{{/items}}
|
||||
{{/vars}}
|
||||
</div> <!-- field-items -->
|
||||
</div>
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,3 @@
|
|||
{{#is this 'path-param'}}<div class="param">{{baseName}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
|
||||
|
||||
<div class="param-desc"><span class="param-type">Path Parameter</span> — {{unescapedDescription}} {{#defaultValue}}default: {{{defaultValue}}} {{/defaultValue}}{{#dataFormat}}format: {{{dataFormat}}}{{/dataFormat}}</div>{{/is}}
|
|
@ -0,0 +1,3 @@
|
|||
{{#is this 'query-param'}}<div class="param">{{baseName}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
|
||||
|
||||
<div class="param-desc"><span class="param-type">Query Parameter</span> — {{unescapedDescription}} {{#defaultValue}}default: {{{defaultValue}}} {{/defaultValue}}{{#dataFormat}}format: {{{dataFormat}}}{{/dataFormat}}</div>{{/is}}
|
|
@ -0,0 +1,172 @@
|
|||
body {
|
||||
font-family: Trebuchet MS, sans-serif;
|
||||
font-size: 15px;
|
||||
color: #444;
|
||||
margin-right: 24px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 25px;
|
||||
}
|
||||
h2 {
|
||||
font-size: 20px;
|
||||
}
|
||||
h3 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
color: #ddd;
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
.app-desc {
|
||||
clear: both;
|
||||
margin-left: 20px;
|
||||
}
|
||||
.param-name {
|
||||
width: 100%;
|
||||
}
|
||||
.license-info {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.license-url {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.model {
|
||||
margin: 0 0 0px 20px;
|
||||
}
|
||||
|
||||
.method {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.method-notes {
|
||||
margin: 10px 0 20px 0;
|
||||
font-size: 90%;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 10px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.http-method {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
pre.get {
|
||||
background-color: #0f6ab4;
|
||||
}
|
||||
|
||||
pre.post {
|
||||
background-color: #10a54a;
|
||||
}
|
||||
|
||||
pre.put {
|
||||
background-color: #c5862b;
|
||||
}
|
||||
|
||||
pre.delete {
|
||||
background-color: #a41e22;
|
||||
}
|
||||
|
||||
.huge {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
pre.example {
|
||||
background-color: #f3f3f3;
|
||||
padding: 10px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
code {
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.nickname {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.method-path {
|
||||
font-size: 1.5em;
|
||||
background-color: #0f6ab4;
|
||||
}
|
||||
|
||||
.up {
|
||||
float:right;
|
||||
}
|
||||
|
||||
.parameter {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
.param {
|
||||
width: 500px;
|
||||
padding: 10px 0 0 20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.param-desc {
|
||||
width: 700px;
|
||||
padding: 0 0 0 20px;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.param-type {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.param-enum-header {
|
||||
width: 700px;
|
||||
padding: 0 0 0 60px;
|
||||
color: #777;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.param-enum {
|
||||
width: 700px;
|
||||
padding: 0 0 0 80px;
|
||||
color: #777;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.field-label {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.field-items {
|
||||
padding: 0 0 15px 0;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.return-type {
|
||||
clear: both;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.param-header {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.method-tags {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.method-tag {
|
||||
background: none repeat scroll 0% 0% #24A600;
|
||||
border-radius: 3px;
|
||||
padding: 2px 10px;
|
||||
margin: 2px;
|
||||
color: #FFF;
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
}
|
|
@ -4,40 +4,31 @@
|
|||
|
||||
archiva-modules
|
||||
archiva-base
|
||||
archiva-common
|
||||
archiva-storage-api
|
||||
archiva-storage-fs
|
||||
archiva-filelock
|
||||
archiva-model
|
||||
archiva-checksum
|
||||
archiva-policies
|
||||
archiva-common
|
||||
archiva-configuration
|
||||
archiva-repository-api
|
||||
archiva-xml-tools
|
||||
archiva-repository-layer
|
||||
archiva-proxy-api
|
||||
archiva-proxy
|
||||
archiva-repository-scanner
|
||||
archiva-security-common
|
||||
archiva-consumers
|
||||
archiva-consumers-api
|
||||
archiva-consumer-archetype
|
||||
archiva-core-consumers
|
||||
archiva-lucene-consumer
|
||||
archiva-metadata-consumer
|
||||
archiva-signature-consumer
|
||||
archiva-lucene-consumer
|
||||
archiva-consumer-archetype
|
||||
archiva-filelock
|
||||
archiva-model
|
||||
archiva-policies
|
||||
archiva-proxy
|
||||
archiva-proxy-api
|
||||
archiva-repository-api
|
||||
archiva-repository-admin
|
||||
archiva-repository-admin-api
|
||||
archiva-repository-admin-default
|
||||
archiva-scheduler
|
||||
archiva-scheduler-api
|
||||
archiva-scheduler-repository-api
|
||||
archiva-scheduler-repository
|
||||
archiva-scheduler-indexer
|
||||
metadata
|
||||
metadata-statistics-api
|
||||
metadata-repository-api
|
||||
metadata-model
|
||||
archiva-repository-layer
|
||||
archiva-repository-scanner
|
||||
archiva-security-common
|
||||
archiva-storage-api
|
||||
archiva-storage-fs
|
||||
archiva-xml-tools
|
||||
archiva-maven
|
||||
archiva-maven-common
|
||||
archiva-maven-model
|
||||
|
@ -47,15 +38,25 @@ archiva-modules
|
|||
archiva-maven-indexer
|
||||
archiva-maven-repository
|
||||
archiva-maven-scheduler
|
||||
archiva-scheduler
|
||||
archiva-scheduler-api
|
||||
archiva-scheduler-indexer
|
||||
archiva-scheduler-repository-api
|
||||
archiva-scheduler-repository
|
||||
metadata
|
||||
metadata-model
|
||||
metadata-repository-api
|
||||
metadata-statistics-api
|
||||
test-repository
|
||||
plugins
|
||||
audit
|
||||
generic-metadata-support
|
||||
metadata-store-cassandra
|
||||
metadata-store-file
|
||||
metadata-store-jcr
|
||||
problem-reports
|
||||
repository-statistics
|
||||
stage-repository-merge
|
||||
metadata-store-file
|
||||
audit
|
||||
problem-reports
|
||||
metadata-store-cassandra
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue