UnsupportedMediaTypeException RAML Mule
Требование - пользователь нажимает URL, и на вызывающий компьютер загружается файл CSV.
Реализация Ниже мое определение RAML (1.0)
/{format}:
is: [ genericErrorResponsesCompliant ]
get:
description: Get/Download list of all ACTIVE accounts in a given format (CSV/JSON) default is JSON
body:
application/json:
responses:
200:
body:
application/octet-stream:
202:
body:
application/json:
404:
body:
application/json:
example: !include resources/json/example/error/error-resource-not-found-response-example.json
ВЫПУСК: Когда запрос отправлен с помощью -
- API-консоль для вызова API, виден ответ CSV
- почтальон - я получаю UnsupportedMediaTypeException в консоли Mule
- почтальон (когда пропущено приложение Content-Type /json) Выход CSV виден в разделе ответов
- браузер я получаю сообщение об ошибке UnsupportedMediaTypeException
Вопрос: Если я не устанавливаю тип содержимого, то API-комплект не проходит проверку и отправляется исключение. Есть ли способ, при котором тип контента по умолчанию устанавливается как application/json, и конечный пользователь может получить доступ к URL-адресу из браузера и загрузить CSV-файл?
Я должен быть в состоянии преодолеть исключение, брошенное API-Kit
Если вам нужна дополнительная информация, дайте мне знать, но я изо всех сил пытаюсь это сделать. Любая помощь будет оценена.
Исключение Root Трассировка стека исключений: org.mule.module.apikit.exception.UnsupportedMediaTypeException at org.mule.module.apikit.HttpRestRequest.handleUnsupportedMediaType(HttpRestRequest.javaestestRejReReTecurity.Relay.RuText.RuTecTM).java:300)
Среда выполнения Mule 3.8 в Studio версии 6.1.1
2 ответа
Это потому, что у вас есть это для запроса GET:
get:
description: Get/Download list of all ACTIVE accounts in a given format (CSV/JSON) default is JSON
body:
application/json:
Удалите body: application/json, в GET-запросе это не нужно. Затем он позволит вам вызывать API без Content-type.
Я бы хотел, чтобы это сработало. Получите то же исключение. RAML после предложений @ryan-carter
/{format}:
is: [ genericErrorResponsesCompliant ]
get:
description: Get list of all ACTIVE accounts for a given country in a given format (CSV/JSON) default is JSON
headers:
Content-Type:
default:
'*/*'
responses:
200:
body:
application/octet-stream: