У меня есть RESTful API для приложения Spring Boot. Я столкнулся с этим, когда пытался выяснить отдельный вопрос, связанный с попыткой добавить пользовательские типы мультимедиа.Swagger-UI не распознает приложение/hal + json
После попытки сделать это у меня возникло исключение HttpMediaTypeNotAcceptable
, когда я пытаюсь просмотреть документацию по API. Это исключение видно только в журналах (если я перехожу на уровень до DEBUG
). В браузере я вижу 406 undefined
. Вот скриншот:
Исключение я получаю из журналов Spring ботинка это:
2014-11-04 10:08:26.189 DEBUG 5496 --- [nio-8080-exec-9] .w.s.m.s.DefaultHandlerExceptionResolver : Resolving exception from handler [public org.springframework.http.ResponseEntity<com.wordnik.swagger.model.ResourceListing> com.mangofactory.swagger.controllers.DefaultSwaggerController.getResourceListing(java.lang.String)]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
Корня проблемы заключается в том, что существующие, производимых СМИ-типы перезаписаны.
Без кода выше, список содержит:
application/hal+json
application/json;charset=UTF-8
application/*+json;charset=UTF-8
.
С моими изменениями, список содержит только application/hal+json
и мой пользовательский медиа-тип. Так что же происходит, что весна не может найти совместимый медиа-типа на всех, потому что Сваггер UI имеет application/json
в его Accept:
заголовок, тогда как http://localhost:8080/api-docs
вендов application/hal+json
(я проверил с помощью завиток):
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application
Content-Type: application/hal+json
Transfer-Encoding: chunked
Date: Tue, 04 Nov 2014 16:56:57 GMT
Я предполагаю, что Форс UI должен вероятно, установите заголовок accept в application/json,application/hal+json
или, возможно, используйте подстановочный знак, например application/*+json
.
В настоящее время это исправляет проблему. Огромное спасибо! Мне все еще нужно выяснить, почему все эти другие конвертеры сообщений тоже сдуваются. –
Ссылка не актуальна в текущей версии. У кого-нибудь есть исправление для текущей версии? –
@MichalPaszkiewicz - код значительно изменился с тех пор (должен был использовать ссылку на прямой хеш, мои извинения). Найти местоположение сейчас займет немного времени, хотя я не уверен, что проблема остается в текущей версии. – Ron