Служба, сгенерированная openapi, всегда дает мне нулевой фильтрJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Служба, сгенерированная openapi, всегда дает мне нулевой фильтр

Сообщение Anonymous »

Я создавал сервис с помощью jaxrs-spec и в настоящее время с помощью jaxrs-resteasy. Переключение было сделано, потому что resteasy возвращает неверный статус в соответствии с yaml, а resteasy используется в wildfly. У меня для фильтра нет ничего, кроме нуля.
Вот как выглядит спецификация.

Код: Выделить всё

    get:
operationId: getMessageByFilter
description: Get a specific message by filter option (messageStatus, creationDateTime, recipientAttention.subOrganization.extension, senderAttention.subOrganization.extension). This operation always excludes digitalDocument
tags:
- Message life cycle
parameters:
- in: query
name: filter
description: "The filter query parameter family is reserved to be used as the basis for any filtering of strategy. ?Filter[attribute]=value"
example: '?filter[recipientAttention.subOrganization.extension]=sdk:inkorg001:0203:inera.se'
schema:
type: object
properties:
'recipientAttention.subOrganization.extension':
type: string
'senderAttention.subOrganization.extension':
type: string
messageStatus:
$ref: "#/components/schemas/messageStatusDef"
creationDateTimeStart:
type: string
format: date-time
creationDateTimeStop:
type: string
format: date-time
style: deepObject
allowReserved: true
...
Сервис генерируется нормально.

Код: Выделить всё

    @Produces({ "application/json" })
@io.swagger.annotations.ApiOperation(value = "", notes = "Get a specific message by filter option (messageStatus, creationDateTime, recipientAttention.subOrganization.extension, senderAttention.subOrganization.extension). This operation always excludes digitalDocument", response = OutputArrayData.class, authorizations = {
@io.swagger.annotations.Authorization(value = "message_auth", scopes = {
@io.swagger.annotations.AuthorizationScope(scope = "urn:sdk.api:getMessageByFilter", description = "get a message by filter")
})
}, tags={ "Message life cycle", })
@io.swagger.annotations.ApiResponses(value = {
@io.swagger.annotations.ApiResponse(code = 200, message = "OK", response = OutputArrayData.class),

@io.swagger.annotations.ApiResponse(code = 400, message = "BadRequest", response = Events.class),

@io.swagger.annotations.ApiResponse(code = 401, message = "Unauthorized", response = Void.class),

@io.swagger.annotations.ApiResponse(code = 404, message = "Not found.", response = Void.class) })
public Response getMessageByFilter( @QueryParam("filter") GetMessageByFilterFilterParameter filter,@Context SecurityContext securityContext)
throws NotFoundException {
return service.getMessageByFilter(filter,securityContext);
}
За исключением того, что независимо от того, что я отправляю, фильтр всегда равен нулю.
Я добавил ParamConvertProvider, который возвращает ParamConverter но ParamConverterProvider не вызывается, так как я перешел на resteasy. Никогда не было вызова поставщика с классом фильтра.
Это ParamConverterProvider. Не вызывается для получения конвертера «фильтр».

Код: Выделить всё

@Provider
public class SdkApiParameterConverter implements ParamConverterProvider
{
private GetByFilterParamConverter converter;
@SuppressWarnings("unchecked")
@Override
public  ParamConverter getConverter(Class aClass, Type type, Annotation[] annotations)
{
if (aClass.isAssignableFrom(GetMessageByFilterFilterParameter.class))
{
if (converter == null)
{
converter = new GetByFilterParamConverter();
}
return (ParamConverter) converter;
}
return null;
}
}
Мы развертываем на wildfly. Именно поэтому для нас был выбран resteasy.
Лично я считаю, что со спецификацией API что-то не так. Я просто не могу этого понять.
  • Проблема в файле yaml?
  • Это какая-то проблема еще что мне нужно реализовать, чтобы git работал?
На данный момент я решил эту проблему, взяв в руки объект HttpServletRequest и анализ объекта из строки запроса.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ull-filter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»