错误 415 GET 方法不支持媒体类型

问题描述 投票:0回答:5

我目前正在学习 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 方法中的标头,但我仍然遇到相同的错误。任何帮助将不胜感激。

谢谢!

api rest mule anypoint-studio anypoint-platform
5个回答
3
投票

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

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

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


1
投票

由于我的路由器和应用程序接口上的名称不匹配,我也遇到了同样的问题。 如果您使用应用程序接口作为应用程序中所有流的引用,请确保在路由器配置和接口上引用的每个端点上使用相同的命名。类似...

<apikit:router doc:name="APIkit Router" config-ref="api-config" /> 

您的路由器和

<flow name="get:\users:api-config" 

在您的界面上。


0
投票

可能您没有将 Content-Type 标头设置为

application/json
并且 API 实现需要它。


0
投票

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

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

!包括示例/searchExample.json


0
投票

请解决 apikit 的端点生成错误问题

名称流程前注:

  • 获取:\worker**:application\json:**cs-senda-sapi-config

名称流说明:

  • 获取:\worker:cs-senda-sapi-config

Con este ajuste ya noera necesario especarle el Content-Type.

© www.soinside.com 2019 - 2024. All rights reserved.