Compare commits

...
4 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
4 changed files with 48 additions and 2 deletions
+1
View File
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
+14
View File
@@ -0,0 +1,14 @@
# Библиотека openapi контрактов
Библиотека содержит openapi описание методов используемых для интеграции аппаратной части и информационной системы
## Сборка библиотеки
При сборке будут сгенерированы классы контроллеров и DTO скомпилированы и упакованы в jar файл
`gradle jar`
## Описанные методы
- GET /qr - метод получения qr-кодов
- POST /qr-used/{qrId} - метод отметки использования qr-кода клиентом(для сбора метрик)
+23 -1
View File
@@ -1,6 +1,7 @@
plugins { plugins {
kotlin("jvm") version "2.0.21" kotlin("jvm") version "2.0.21"
id("org.openapi.generator") version "7.10.0" id("org.openapi.generator") version "7.10.0"
id("maven-publish")
} }
group = "ru.vyatsu" group = "ru.vyatsu"
@@ -12,9 +13,17 @@ repositories {
mavenCentral() mavenCentral()
} }
// TODO: Нужно присобачить bom
dependencies { dependencies {
compileOnly("com.squareup.okhttp3:okhttp:4.12.0") compileOnly("com.squareup.okhttp3:okhttp:4.12.0")
compileOnly("com.squareup.moshi:moshi-kotlin:1.15.2") 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")) testImplementation(kotlin("test"))
} }
@@ -27,10 +36,14 @@ kotlin {
} }
tasks.openApiGenerate { tasks.openApiGenerate {
generatorName.set("kotlin") generatorName.set("kotlin-spring")
inputSpec.set("$rootDir/src/main/resources/openapi-contract.yaml") inputSpec.set("$rootDir/src/main/resources/openapi-contract.yaml")
outputDir.set(generatedSourcesDir) outputDir.set(generatedSourcesDir)
packageName.set("ru.vyatsu") packageName.set("ru.vyatsu")
configOptions.put("interfaceOnly", "true")
configOptions.put("useSpringBoot3", "true")
configOptions.put("useBeanValidation", "false")
configOptions.put("useSwaggerUI", "false")
} }
sourceSets { sourceSets {
@@ -43,4 +56,13 @@ sourceSets {
tasks.compileKotlin { tasks.compileKotlin {
dependsOn(tasks.openApiGenerate) dependsOn(tasks.openApiGenerate)
}
publishing {
publications {
create<MavenPublication>("maven") {
from(components["kotlin"])
artifactId = tasks.jar.get().archiveBaseName.get()
}
}
} }
+10 -1
View File
@@ -21,6 +21,8 @@ paths:
summary: Получение qr кодов summary: Получение qr кодов
description: Получение qr кодов за сегодня, за исключением прошедшего времени description: Получение qr кодов за сегодня, за исключением прошедшего времени
operationId: getQrCodes operationId: getQrCodes
security:
- bearerAuth: [ ]
responses: responses:
'200': '200':
description: Successful operation description: Successful operation
@@ -46,6 +48,8 @@ paths:
summary: Отметка qr-кода как использованного(Для сбора метрик). summary: Отметка qr-кода как использованного(Для сбора метрик).
description: Отправляется микрокомпьютером, когда qr-код был задействован. description: Отправляется микрокомпьютером, когда qr-код был задействован.
operationId: markQrCodeAsUsed operationId: markQrCodeAsUsed
security:
- bearerAuth: [ ]
responses: responses:
'200': '200':
description: Successfull mark description: Successfull mark
@@ -80,4 +84,9 @@ components:
keyCode: keyCode:
type: string type: string
format: uuid format: uuid
example: 'dd654b6c-a671-488e-8fc9-eb564d0a8f22' example: 'dd654b6c-a671-488e-8fc9-eb564d0a8f22'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT