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 

ВЫПУСК: Когда запрос отправлен с помощью -

  1. API-консоль для вызова API, виден ответ CSV
  2. почтальон - я получаю UnsupportedMediaTypeException в консоли Mule
  3. почтальон (когда пропущено приложение Content-Type /json) Выход CSV виден в разделе ответов
  4. браузер я получаю сообщение об ошибке 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:
Другие вопросы по тегам