diff --git a/ccm-core/pom.xml b/ccm-core/pom.xml
index a5ad2a6c9..582da9249 100644
--- a/ccm-core/pom.xml
+++ b/ccm-core/pom.xml
@@ -92,11 +92,20 @@
flyway-core
-
+
+ io.swagger.core.v3
+ swagger-jaxrs2
+
+
+ io.swagger.core.v3
+ swagger-jaxrs2-servlet-initializer-v2
+
io.swagger.core.v3
swagger-annotations
- -->
+
+
@@ -374,7 +383,8 @@
-
+
+
+
+
+ io.swagger.core.v3
+ swagger-maven-plugin
+
+
+ org.libreccm.api
+ org.libreccm.api.admin
+ org.libreccm.api.admin.categorization
+ org.libreccm.api.admin.categorization.dto
+ org.libreccm.api.admin.configuration
+ org.libreccm.api.admin.security
+ org.libreccm.api.admin.security.dto
+
+
+ ${project.build.directory}/generated-resources/openapi
+ ccm-core-api
+ JSONANDYAML
+ TRUE
+
+
+
+ compile
+
+ resolve
+
+
+
+
diff --git a/ccm-core/src/main/java/org/libreccm/api/admin/AdminApi.java b/ccm-core/src/main/java/org/libreccm/api/admin/AdminApi.java
index e363fe4b5..6af2f3d29 100644
--- a/ccm-core/src/main/java/org/libreccm/api/admin/AdminApi.java
+++ b/ccm-core/src/main/java/org/libreccm/api/admin/AdminApi.java
@@ -5,6 +5,13 @@
*/
package org.libreccm.api.admin;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.enums.SecuritySchemeType;
+import io.swagger.v3.oas.annotations.info.Contact;
+import io.swagger.v3.oas.annotations.info.Info;
+import io.swagger.v3.oas.annotations.info.License;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import io.swagger.v3.oas.annotations.security.SecurityScheme;
import org.libreccm.api.admin.security.GroupsApi;
import org.libreccm.api.admin.security.RolesApi;
import org.libreccm.api.admin.security.UsersApi;
@@ -12,7 +19,6 @@ import org.libreccm.api.admin.security.UsersApi;
import java.util.HashSet;
import java.util.Set;
-import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import org.libreccm.api.CorsFilter;
@@ -25,11 +31,35 @@ import org.libreccm.api.admin.sites.SitesApi;
import org.libreccm.api.admin.web.CcmApplicationsApi;
import org.libreccm.configuration.Configuration;
+import javax.ws.rs.ApplicationPath;
+
/**
*
* @author Jens Pelzetter
*/
@ApplicationPath("/api/admin")
+@OpenAPIDefinition(
+ info = @Info(
+ title = "ccm-core Admin RESTful API",
+ version = "7.0.0",
+ description = "RESTful API for basic administration tasks",
+ license = @License(name = "LGPL v3"),
+ contact = @Contact(
+ url = "https://www.libreccm.org", email = "info@libreccm.org"
+ )
+ ),
+ security = {
+ @SecurityRequirement(
+ name = "ccm-core-admin-security"
+ )
+ }
+)
+@SecurityScheme(
+ name = "ccm-core-admin-security",
+ type = SecuritySchemeType.HTTP,
+ scheme = "bearer",
+ bearerFormat = "JWT"
+)
public class AdminApi extends Application {
@Override
diff --git a/ccm-core/src/main/java/org/libreccm/api/admin/SystemInformationApi.java b/ccm-core/src/main/java/org/libreccm/api/admin/SystemInformationApi.java
index e0ba829be..f909fa4e8 100644
--- a/ccm-core/src/main/java/org/libreccm/api/admin/SystemInformationApi.java
+++ b/ccm-core/src/main/java/org/libreccm/api/admin/SystemInformationApi.java
@@ -20,6 +20,7 @@ package org.libreccm.api.admin;
import com.arsdigita.util.SystemInformation;
+import io.swagger.v3.oas.annotations.Operation;
import org.libreccm.core.CoreConstants;
import org.libreccm.security.AuthorizationRequired;
import org.libreccm.security.RequiresPrivilege;
@@ -40,11 +41,16 @@ import javax.ws.rs.core.MediaType;
public class SystemInformationApi {
@GET
- @Path("/{domainIdentifier}/{path:^[\\w\\-/]+$}")
+ @Path("/")
@Produces(MediaType.APPLICATION_JSON)
@AuthorizationRequired
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
@Transactional(Transactional.TxType.REQUIRED)
+ @Operation(
+ summary = "Retrieve system information",
+ description = "Returns a JSON object with several informations about "
+ + "LibreCCM installation"
+ )
public SystemInformation getSystemInformation() {
return SystemInformation.getInstance();
}
diff --git a/pom.xml b/pom.xml
index 0dc47f211..c2eb1af47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,7 @@
ccm-core
+ ccm-core-apiclient
ccm-testutils
@@ -103,7 +104,7 @@
ccm-cms-archetype-contenttype
- ccm-core-apiclient
+
@@ -334,6 +335,11 @@
swagger-maven-plugin
2.1.2
+
+ io.swagger.core.v3
+ swagger-maven-plugin
+ 2.1.3
+
org.wildfly.plugins
wildfly-maven-plugin
@@ -733,17 +739,17 @@
io.swagger.core.v3
swagger-jaxrs2
- 2.1.2
+ 2.1.3
io.swagger.core.v3
swagger-jaxrs2-servlet-initializer-v2
- 2.1.2
+ 2.1.3
io.swagger.core.v3
swagger-annotations
- 2.1.2
+ 2.1.3