如何在 NSwag 生成的文档中启用“text/plain”内容类型?

Sil*_*res 7 c# swagger asp.net-core nswag

我正在尝试在 AspNetCore 3.1 API 中创建一个控制器。c#,借助“NSwag.AspNetCore”13.1.3。该控制器的目的是接收并返回纯文本(不是 json)。

\n\n

控制器代码如下所示:

\n\n
[HttpPost]\n[Route("api/BodyTypes/JsonPlainBody")]\n[Consumes("text/plain")]    \n[Produces("text/plain")]\npublic string PlainStringBody([FromBody] string content)\n{\n    return content;\n}   \n
Run Code Online (Sandbox Code Playgroud)\n\n

摘自描述此服务的“swagger.json”文件:

\n\n
...\n"/api/BodyTypes/JsonPlainBody": {\n  "post": {\n    "tags": [\n      "Acess\xc3\xb3rios - Opera\xc3\xa7\xc3\xb5es diversas"\n    ],\n    "operationId": "Acessorios_PlainStringBody",\n    "requestBody": {\n      "x-name": "content",\n      "content": {\n        "application/json": {\n          "schema": {\n            "type": "string"\n          }\n        }\n      },\n      "required": true,\n      "x-position": 1\n    },\n    "responses": {\n      "200": {\n        "description": "",\n        "content": {\n          "application/json": {\n            "schema": {\n              "type": "string"\n            }\n          }\n        }\n      }\n    }\n  }\n}\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n

SwaggerUI 中该控制器的表示不允许我选择内容类型“text/plain”,因此会生成错误格式的 http 请求,导致服务器返回与数据格式相关的错误(415 - 错误) :不支持的媒体类型):

\n\n

在此输入图像描述

\n\n

在 Postman 中测试同一控制器时,使用“文本/纯文本”内容类型进行编辑,一切都按预期工作:

\n\n

在此输入图像描述

\n\n

非常欢迎任何帮助。

\n