Compare commits

..
6 Commits
Author SHA1 Message Date
kashiuno 1ff63dfdc0 Add README.md 2025-03-20 22:15:50 +03:00
kashiuno 2cc798376c Add authorization to hardware contract 2025-01-08 08:35:36 +03:00
kashiuno 95f866cd78 Change generator type to kotlin spring 2025-01-03 18:12:08 +03:00
kashiuno 91ef88d8c9 Add publishing to local m2 repository 2025-01-02 21:55:31 +03:00
kashiuno 26a6f065da Change package 2025-01-02 14:32:20 +03:00
kashiuno 7adf116721 Add openapi kotlin generator to project 2025-01-02 14:29:38 +03:00
4 changed files with 74 additions and 3 deletions
+1
View File
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
+14
View File
@@ -0,0 +1,14 @@
# Библиотека openapi контрактов
Библиотека содержит openapi описание методов используемых для интеграции аппаратной части и информационной системы
## Сборка библиотеки
При сборке будут сгенерированы классы контроллеров и DTO скомпилированы и упакованы в jar файл
`gradle jar`
## Описанные методы
- GET /qr - метод получения qr-кодов
- POST /qr-used/{qrId} - метод отметки использования qr-кода клиентом(для сбора метрик)
+49 -2
View File
@@ -1,21 +1,68 @@
plugins {
kotlin("jvm") version "2.0.21"
id("org.openapi.generator") version "7.10.0"
id("maven-publish")
}
group = "com.kashiuno"
version = "1.0-SNAPSHOT"
group = "ru.vyatsu"
version = "1.0.0"
val generatedSourcesDir = "$buildDir/generated/openapi"
repositories {
mavenCentral()
}
// TODO: Нужно присобачить bom
dependencies {
compileOnly("com.squareup.okhttp3:okhttp:4.12.0")
compileOnly("com.squareup.moshi:moshi-kotlin:1.15.2")
compileOnly("org.springframework.boot:spring-boot-autoconfigure:3.4.1")
compileOnly("org.springframework.boot:spring-boot-starter-web:3.4.1")
compileOnly("org.springframework.boot:spring-boot-starter-validation:3.4.1")
compileOnly("jakarta.servlet:jakarta.servlet-api:6.1.0")
compileOnly("io.swagger.core.v3:swagger-annotations:2.2.27")
compileOnly("io.swagger.core.v3:swagger-models:2.2.27")
testImplementation(kotlin("test"))
}
tasks.test {
useJUnitPlatform()
}
kotlin {
jvmToolchain(17)
}
tasks.openApiGenerate {
generatorName.set("kotlin-spring")
inputSpec.set("$rootDir/src/main/resources/openapi-contract.yaml")
outputDir.set(generatedSourcesDir)
packageName.set("ru.vyatsu")
configOptions.put("interfaceOnly", "true")
configOptions.put("useSpringBoot3", "true")
configOptions.put("useBeanValidation", "false")
configOptions.put("useSwaggerUI", "false")
}
sourceSets {
getByName("main") {
kotlin {
srcDir("$generatedSourcesDir/src/main/kotlin")
}
}
}
tasks.compileKotlin {
dependsOn(tasks.openApiGenerate)
}
publishing {
publications {
create<MavenPublication>("maven") {
from(components["kotlin"])
artifactId = tasks.jar.get().archiveBaseName.get()
}
}
}
@@ -21,6 +21,8 @@ paths:
summary: Получение qr кодов
description: Получение qr кодов за сегодня, за исключением прошедшего времени
operationId: getQrCodes
security:
- bearerAuth: [ ]
responses:
'200':
description: Successful operation
@@ -46,6 +48,8 @@ paths:
summary: Отметка qr-кода как использованного(Для сбора метрик).
description: Отправляется микрокомпьютером, когда qr-код был задействован.
operationId: markQrCodeAsUsed
security:
- bearerAuth: [ ]
responses:
'200':
description: Successfull mark
@@ -81,3 +85,8 @@ components:
type: string
format: uuid
example: 'dd654b6c-a671-488e-8fc9-eb564d0a8f22'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT