Я разрабатываю приложение по принципу Contract First.
один из моих путей:
/game/init:
post:
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/initGame'
tags:
- Game
summary: Initialize a game
description: Initialize a game
operationId: initializeGame
responses:
'201':
description: Game was created
content:
text/plain:
schema:
$ref: '#/components/schemas/gameIdentifier'
Как видите, я хочу вернуть здесь HTTP 201, чтобы указать, что игра была инициализирована.
Это генерируется для
@Path("/game/init")
@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", date = "2024-05-17T14:16:48.789874400+02:00[Europe/Brussels]")
public interface GameApi {
/**
* Initialize a game
*
* @param initGame
* @return Game was created - 201
*/
@ResponseStatus(201)
@POST
@Consumes({ "application/json" })
@Produces({ "text/plain" })
Long initializeGame(@Valid @NotNull InitGame initGame);
}
это интерфейс, который я реализую в другом месте.
из-за проблемы с RestEasy (https://github.com/quarkusio/quarkus/issues/30170) я' Я пытался адаптировать шаблоны усов, включив в них @ResponseStatus(201), так как по умолчанию для него не было создано кода.
Это не влияет на мое приложение и по-прежнему возвращает 200.
Я дополнительно пробовал использовать RestResponse и Response, что приводит к тому, что ResteasyProviderFactoryImpl невозможно привести к классу org.jboss.resteasy.reactive.common.jaxrs.RuntimeDelegateImpl
Что мне не удалось решить.
Похоже, я делаю что-то ужасно неправильное, поскольку такая центральная функциональность не должна быть такой сложной.
Для полноты картины я также включу сюда свой помпон:
4.0.0
company
battleship
1.0-SNAPSHOT
3.12.1
21
UTF-8
UTF-8
quarkus-bom
io.quarkus.platform
3.9.5
true
3.2.5
${quarkus.platform.group-id}
${quarkus.platform.artifact-id}
${quarkus.platform.version}
pom
import
io.quarkus
quarkus-hibernate-orm
io.quarkus
quarkus-resteasy-jackson
io.quarkus
quarkus-arc
io.quarkus
quarkus-resteasy
io.quarkus
quarkus-junit5
test
io.rest-assured
rest-assured
test
io.swagger.parser.v3
swagger-parser
2.1.20
org.openapitools
jackson-databind-nullable
0.2.6
io.quarkus.resteasy.reactive
resteasy-reactive-common
3.9.5
io.quarkus.resteasy.reactive
resteasy-reactive
3.9.5
io.quarkus
quarkus-flyway
io.quarkus
quarkus-jdbc-postgresql
de.mkammerer.snowflake-id
snowflake-id
0.0.2
org.assertj
assertj-core
3.25.3
test
${quarkus.platform.group-id}
quarkus-maven-plugin
${quarkus.platform.version}
true
build
generate-code
generate-code-tests
maven-compiler-plugin
${compiler-plugin.version}
-parameters
maven-surefire-plugin
${surefire-plugin.version}
org.jboss.logmanager.LogManager
${maven.home}
maven-failsafe-plugin
${surefire-plugin.version}
integration-test
verify
${project.build.directory}/${project.build.finalName}-runner
org.jboss.logmanager.LogManager
${maven.home}
org.openapitools
openapi-generator-maven-plugin
7.3.0
generate
${project.basedir}/src/main/resources/openapi/battleship.yml
jaxrs-spec
${project.basedir}/src/main/resources/openapi-templates
java8
false
true
true
true
company.api
company.beans
false
false
false
false
false
false
org.codehaus.mojo
build-helper-maven-plugin
3.5.0
generate-sources
add-source
${project.build.directory}/generated-sources/openapi/src/gen/java
native
native
false
native
Подробнее здесь: https://stackoverflow.com/questions/784 ... ponse-code
Quarkus 3.9 возвращает объект с кодом ответа ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1717356435
Anonymous
Я разрабатываю приложение по принципу Contract First.
один из моих путей:
/game/init:
post:
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/initGame'
tags:
- Game
summary: Initialize a game
description: Initialize a game
operationId: initializeGame
responses:
'201':
description: Game was created
content:
text/plain:
schema:
$ref: '#/components/schemas/gameIdentifier'
Как видите, я хочу вернуть здесь HTTP 201, чтобы указать, что игра была инициализирована.
Это генерируется для
@Path("/game/init")
@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", date = "2024-05-17T14:16:48.789874400+02:00[Europe/Brussels]")
public interface GameApi {
/**
* Initialize a game
*
* @param initGame
* @return Game was created - 201
*/
@ResponseStatus(201)
@POST
@Consumes({ "application/json" })
@Produces({ "text/plain" })
Long initializeGame(@Valid @NotNull InitGame initGame);
}
это интерфейс, который я реализую в другом месте.
из-за проблемы с RestEasy (https://github.com/quarkusio/quarkus/issues/30170) я' Я пытался адаптировать шаблоны усов, включив в них @ResponseStatus(201), так как по умолчанию для него не было создано кода.
Это не влияет на мое приложение и по-прежнему возвращает 200.
Я дополнительно пробовал использовать RestResponse и Response, что приводит к тому, что ResteasyProviderFactoryImpl невозможно привести к классу org.jboss.resteasy.reactive.common.jaxrs.RuntimeDelegateImpl
Что мне не удалось решить.
Похоже, я делаю что-то ужасно неправильное, поскольку такая центральная функциональность не должна быть такой сложной.
Для полноты картины я также включу сюда свой помпон:
4.0.0
company
battleship
1.0-SNAPSHOT
3.12.1
21
UTF-8
UTF-8
quarkus-bom
io.quarkus.platform
3.9.5
true
3.2.5
${quarkus.platform.group-id}
${quarkus.platform.artifact-id}
${quarkus.platform.version}
pom
import
io.quarkus
quarkus-hibernate-orm
io.quarkus
quarkus-resteasy-jackson
io.quarkus
quarkus-arc
io.quarkus
quarkus-resteasy
io.quarkus
quarkus-junit5
test
io.rest-assured
rest-assured
test
io.swagger.parser.v3
swagger-parser
2.1.20
org.openapitools
jackson-databind-nullable
0.2.6
io.quarkus.resteasy.reactive
resteasy-reactive-common
3.9.5
io.quarkus.resteasy.reactive
resteasy-reactive
3.9.5
io.quarkus
quarkus-flyway
io.quarkus
quarkus-jdbc-postgresql
de.mkammerer.snowflake-id
snowflake-id
0.0.2
org.assertj
assertj-core
3.25.3
test
${quarkus.platform.group-id}
quarkus-maven-plugin
${quarkus.platform.version}
true
build
generate-code
generate-code-tests
maven-compiler-plugin
${compiler-plugin.version}
-parameters
maven-surefire-plugin
${surefire-plugin.version}
org.jboss.logmanager.LogManager
${maven.home}
maven-failsafe-plugin
${surefire-plugin.version}
integration-test
verify
${project.build.directory}/${project.build.finalName}-runner
org.jboss.logmanager.LogManager
${maven.home}
org.openapitools
openapi-generator-maven-plugin
7.3.0
generate
${project.basedir}/src/main/resources/openapi/battleship.yml
jaxrs-spec
${project.basedir}/src/main/resources/openapi-templates
java8
false
true
true
true
company.api
company.beans
false
false
false
false
false
false
org.codehaus.mojo
build-helper-maven-plugin
3.5.0
generate-sources
add-source
${project.build.directory}/generated-sources/openapi/src/gen/java
native
native
false
native
Подробнее здесь: [url]https://stackoverflow.com/questions/78496203/quarkus-3-9-return-object-with-response-code[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия