Added backend and fixed openapi generation
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
|
||||
import org.springframework.boot.gradle.tasks.bundling.BootJar
|
||||
|
||||
plugins {
|
||||
id("org.openapi.generator") version "7.12.0"
|
||||
id("org.springframework.boot") version "3.4.4"
|
||||
id("io.spring.dependency-management") version "1.1.7"
|
||||
java
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
tasks.named("compileJava") {
|
||||
dependsOn("generateJavaApi")
|
||||
dependsOn("generateFrontendApi")
|
||||
}
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
targetCompatibility = JavaVersion.VERSION_21
|
||||
}
|
||||
|
||||
tasks.named<BootJar>("bootJar") {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
tasks.jar {
|
||||
enabled = true
|
||||
}
|
||||
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDir("${projectDir}/build/generated-resources/model/src/main/java")
|
||||
exclude("org/openapitools/configuration/SpringDocConfiguration.java")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("org.springframework.boot:spring-boot-starter-web")
|
||||
implementation("org.springframework.boot:spring-boot-starter-validation")
|
||||
implementation("io.swagger.core.v3:swagger-annotations:2.2.20")
|
||||
implementation("org.openapitools:jackson-databind-nullable:0.2.6")
|
||||
implementation("org.springframework.hateoas:spring-hateoas:2.2.0")
|
||||
}
|
||||
|
||||
tasks.register< GenerateTask>("generateJavaApi") {
|
||||
generatorName.set("spring")
|
||||
library.set("spring-boot")
|
||||
inputSpec.set("${projectDir}/src/main/resources/api.yml")
|
||||
configFile.set("${projectDir}/src/main/resources/config_backend.json")
|
||||
outputDir.set("${projectDir}/build/generated-resources/model")
|
||||
typeMappings.put("OffsetDateTime", "Instant")
|
||||
importMappings.put("java.time.OffsetDateTime", "java.time.Instant")
|
||||
modelNameSuffix.set("Dto")
|
||||
generateModelTests.set(false)
|
||||
generateModelDocumentation.set(false)
|
||||
generateApiTests.set(false)
|
||||
generateApiDocumentation.set(false)
|
||||
generateAliasAsModel.set(true)
|
||||
modelPackage.set("com.alttd.altitudeweb.model")
|
||||
generateApiTests.set(false)
|
||||
}
|
||||
|
||||
tasks.register<GenerateTask>("generateFrontendApi") {
|
||||
generatorName.set("typescript-angular")
|
||||
inputSpec.set("$rootDir/open_api/src/main/resources/api.yml")
|
||||
outputDir.set("${projectDir}/../frontend/src/api")
|
||||
configFile.set("$rootDir/open_api/src/main/resources/config_frontend.json")
|
||||
generateApiTests.set(false)
|
||||
}
|
||||
@@ -10,6 +10,33 @@ tags:
|
||||
- name: player
|
||||
description: Retrieve player information
|
||||
paths:
|
||||
/player/teamMembers/{group}:
|
||||
get:
|
||||
tags:
|
||||
- team
|
||||
summary: Get team members
|
||||
description: Retrieve players who are part of the specified team
|
||||
operationId: getTeamMembers
|
||||
parameters:
|
||||
- name: group
|
||||
in: path
|
||||
required: true
|
||||
description: The group name of the team
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/TeamMembers'
|
||||
default:
|
||||
description: Unexpected error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
/player/history:
|
||||
post:
|
||||
tags:
|
||||
@@ -59,6 +86,22 @@ components:
|
||||
duration:
|
||||
type: integer
|
||||
format: int64
|
||||
TeamMembers:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/TeamMember'
|
||||
TeamMember:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: The name of the team member
|
||||
group:
|
||||
type: string
|
||||
description: The group to which the team member belongs
|
||||
required:
|
||||
- name
|
||||
- group
|
||||
Error:
|
||||
type: object
|
||||
properties:
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"library": "spring-boot",
|
||||
"hideGenerationTimestamp": true,
|
||||
"modelPackage": "com.alttd.altitudeweb.api.model",
|
||||
"apiPackage": "com.alttd.altitudeweb.api",
|
||||
"invokerPackage": "com.alttd.altitudeweb.api",
|
||||
"serializableModel": true,
|
||||
"openApiNullable": false,
|
||||
"useTags": true,
|
||||
"useGzipFeature" : true,
|
||||
"hateoas": true,
|
||||
"unhandledException": true,
|
||||
"useSwaggerUI": true,
|
||||
"importMappings": {
|
||||
"ResourceSupport":"org.springframework.hateoas.RepresentationModel",
|
||||
"Link": "org.springframework.hateoas.Link"
|
||||
},
|
||||
"generateApis": true,
|
||||
"generateApiTests": false,
|
||||
"generateApiDocumentation": false,
|
||||
"generateModels": true,
|
||||
"generateModelTests": false,
|
||||
"generateSupportingFiles": false,
|
||||
"modelNameSuffix": "Dto",
|
||||
"generateTests": false,
|
||||
"skipSpringdoc": true,
|
||||
"dateLibrary": "java8",
|
||||
"interfaceOnly": true,
|
||||
"swaggerDocketConfig": false,
|
||||
"skipDefaultInterface": true,
|
||||
"enumUnknownDefaultCase": true,
|
||||
"useSpringBoot3": true
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"npmName": "generated-api",
|
||||
"supportsES6": true
|
||||
}
|
||||
Reference in New Issue
Block a user