Совместимость параметров заголовка JAX-RS Accept

Если Accept строка параметров заголовка имеет несколько приемлемых типов медиа, таких как:

text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

Как узнать, совместим ли тип медиа с одним объектом MediaType?

Если Accept заголовок содержит один тип носителя, то он работает.

MediaType.valueOf(acceptHeaderparam).isCompatible(MediaType.valueOf(contentType) 

Есть ли такой метод, как MediaType.isCompatible(String)?

НОТА: @Consumes заголовок не может использоваться, потому что поддерживаются пользовательские типы мультимедиа, и все типы мультимедиа не могут быть определены во время компиляции.

1 ответ

Что-то вроде этого?

public boolean isCompatible(String mediaTypeStr, String contentType) {
    MediaType type = MediaType.valueOf(contentType);
    return Arrays.stream(mediaTypeStr.split(","))
                 .map(t -> MediaType.valueOf(t.trim()))
                 .anyMatch(type::isCompatible);
}
Другие вопросы по тегам