Ошибка 415 Неподдерживаемый тип носителя для метода GET

В настоящее время я прохожу курс по основам Mulesoft Mule 4 и развернул приложение в Runtime Manager.

Когда я просматриваю журналы своего приложения в Runtime Manager и журналы Anypoint Studio, я вижу указанную выше ошибку неподдерживаемого типа мультимедиа при тестировании HTTP-запроса GET. Я также получаю эту ошибку при тестировании в ARC.

Когда я смотрю в отладчик Mule, а затем в полезную нагрузку в Anypoint Studio, я вижу mediaType = */* charset = UTF-8

Я думал, что это не нужно добавлять для запросов GET, так как мне это обойти?

Мой файл RAML:

#%RAML 1.0
title: session-2

types:
  newsProperties: !include schemas/newsDataType.raml

/search:
  get:
    headers:
      Accept:
        default: application/json
    queryParameters:
      keyword:
        type: string
        minLength: 3
        maxLength: 10
    responses:
      200:
        body:
          application/json:
            example: !include examples/searchExample.raml
      400:
        body:
          application/json:
            example:
              {"message": "Search query too long"}
/news:
  post:
    queryParameters:
      country:
        required: false
    body:
      application/json:
        type: newsProperties
    responses:
      201:
        body:
          application/json:
            example: !include examples/searchExample.raml

/sportsNews:
  put:
    body:
      application/json:
        type: newsProperties

Заголовок в методе GET ресурса / search был добавлен недавно после поиска в Интернете и опробования ряда различных решений, которые я видел, но я все еще получаю ту же ошибку. Любая помощь будет оценена по достоинству.

Спасибо!


person Imp0sterSyndromeSufferer    schedule 25.01.2021    source источник


Ответы (3)


Вероятно, вы не устанавливаете заголовок Content-Type равным application/json, и реализация API этого ожидает.

person aled    schedule 25.01.2021
comment
Спасибо за редактирование моего вопроса. Я не устанавливаю его явно для своего запроса GET, поскольку я думал, что его нужно установить только для POST и PUT? - person Imp0sterSyndromeSufferer; 25.01.2021
comment
возможно, он жалуется на то, что у него его нет, а не на то, что он должен что-то конкретно. - person aled; 25.01.2021

Здравствуйте, попробуйте включить пример json вместо примера raml:

! include examples / searchExample.raml преобразует его, чтобы включить пример json.

! включить примеры / searchExample.json

person Anurag Sharma    schedule 26.01.2021

У меня была такая же проблема, и я решил ее, сопоставив конечную точку на маршрутизаторе (apikit: config). Затем я понял, что имя, установленное для маршрутизатора, было другим в потоке конечной точки, например:

  • Имя потока: get: (userId): api-config
  • Имя роутера: users-api-config

Исправление имени в потоке или отображение метода на маршрутизаторе решают эту проблему.

person gmenezes    schedule 16.04.2021