2016-09-28 5 views
0

Требование - Пользователь ударит по URL-адресу, а CSV загрузится на вызывающем аппарате.UnsupportedMediaTypeException RAML Mule

Реализация Ниже мой 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 

ВОПРОС: Когда запрос передаются с помощью -

  1. API-консоли для вызова API , отображается CSV-ответ
  2. Почтальон - я UnsupportedMediaTypeException в Mule консоли
  3. Почтальон (когда Content-Type приложение/передается в формате JSON) Выход CSV рассматривается в разделе ответа
  4. браузер я получаю ошибку UnsupportedMediaTypeException

Вопрос Если я не устанавливаю тип содержимого, тогда API-Kit не выполняет проверку и отправляется исключение. Есть ли способ, по которому Content-Type по умолчанию устанавливается как application/json, и конечный пользователь может получить доступ к URL-адресу из браузера и загрузить csv?

я должен быть в состоянии преодолеть исключение брошенную API-Kit

Если вам нужна дополнительная информация, дайте мне знать, но я изо всех сил, чтобы это сделать. Любая помощь будет оценена.

Исключение Корень стека исключений трассировки: org.mule.module.apikit.exception.UnsupportedMediaTypeException в org.mule.module.apikit.HttpRestRequest.handleUnsupportedMediaType (HttpRestRequest.java:306) в org.mule .module.apikit.HttpRestRequest.negotiateInputRepresentation (HttpRestRequest.java:300)

Environment Mule 3,8 выполнения на студийной версии 6.1.1

ответ

0

Это becau как таковой у вас есть это для запроса GET:

get: 
     description: Get/Download list of all ACTIVE accounts in a given format (CSV/JSON) default is JSON 
     body: 
     application/json: 

Снимите корпус: приложения/JSON нет никакой потребности в этом запросе на GET. Затем он позволит вам вызывать API без Content-type.

+0

добавленный набор свойств в ** api-main ** поток, как показано ниже. Этот поток генерируется RAML, поэтому любое изменение будет иметь какие-либо побочные эффекты? С ниже изменений, мое требование работы '<поток имя = "Апи-магистраль"> <свойство set-propertyName =" Content-Type "value =" application/json "doc: name =" Свойство "/> ' –

0

Желаю, если это сработает. Получите то же исключение. 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: 
+0

Невозможно выполнить следующие изменения? Я не хочу передавать Content-type и хочу выполнить запрос –

Смежные вопросы