Совместимость параметров заголовка 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);
}