0

我目前正在学习 Mulesoft Mule 4 基础课程,并在 Runtime Manager 上部署了一个应用程序。

当我在运行时管理器上查看我的应用程序日志和 Anypoint Studio 的日志时,我在测试 GET HTTP 请求时看到上述“不支持的媒体类型”错误。在 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

在网上搜索并尝试了许多我见过的不同解决方案后,最近添加了 /search 资源 GET 方法中的标题,但我仍然遇到相同的错误。任何帮助,将不胜感激。

谢谢!

4

3 回答 3

2

我遇到了同样的问题,我通过在路由器(apikit:config)上映射端点解决了这个问题。然后我发现设置给路由器的名称在端点流上是不同的,例如:

  • 流名称:get:(userId):api-config
  • 路由器名称:users-api-config

在流上固定名称或在路由器上映射方法可以解决此问题

于 2021-04-16T22:09:29.207 回答
0

您好尝试包含一个 json 示例而不是一个 raml 示例:

!include examples/searchExample.raml 将其转换为包含 json 示例。

!include 示例/searchExample.json

于 2021-01-26T11:43:16.177 回答
0

可能您没有将 Content-Type 标头设置为application/json并且 API 实现正在期待它。

于 2021-01-25T12:45:53.547 回答