Swagger不在UI和JSON中显示参数,即使我的方法有参数,当我添加[FromBody]标记
Swagger UI无参数JSON文件无参数
操作方法时,尤其会发生这种情况:
[HttpPost("Action")]
public IActionResult Action([FromBody] string message)
{
return Ok(message);
}
我使用全新的 Asp.net 核心3.1和2.2 Web应用程序与API模板来测试这一点,我完全按照文档配置
服务进行了配置:
services.AddMvc();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
}
配置:< br >
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
当我使用[FromRoute]等其他属性时,它确实起作用
我还尝试了这样的物体:
public class Message
{
public int ID { get; set; }
public string body { get; set; }
}
通过此操作:
[HttpPost("Action")]
public IActionResult Action([FromBody] Message message)
{
return Ok(message);
}
相同的结果(没有参数),但它确实显示了模式
那么我做错了什么呢?如何像示例一样记录帖子参数
在使用 OpenAPI 3.0 时,您应该查看此代码示例:http://petstore.swagger.io:8080/
OpenAPI 3.0提供了< code>requestBody关键字来描述请求体。它将有效负载与< code >参数(如查询字符串和路径)区分开来。< code>requestBody更加灵活,因为它允许您使用不同的媒体类型,如JSON、XML、表单数据、纯文本等,并对不同的媒体类型使用不同的模式:
https://swagger.io/docs/specification/describing-request-body/
这是默认的UI,如果您单击“试用”,示例值将自动填充请求正文区域,以帮助创建测试请求正文。
我在 AspNetCore 5.0 上遇到了类似的问题,其中“复杂”类型将作为参数和输出类型被完全忽略。该问题是由于将输入/输出格式化程序切换到不同的JSON序列化程序(遗留代码,因为netonsoft在某些情况下速度很慢)引起的。新的虚张声势可以与系统.Text.Json或牛顿软件一起使用,但不能用于第三种解决方案。所以检查.AddMvcOptions() 在配置服务中,如果对输入格式化程序或输出格式化程序执行了任何操作,则可能是罪魁祸首
我有Spring acpect,它会在我的应用程序中的每个控制器方法周围触发。在方面的主体中,我想访问方法签名中声明的所有请求参数。有没有一种简单的方法可以避免反思?
我正在尝试使用$http访问Web API get控制器。按如下方式进行角度应用: 在我的例子中,PrimaryID或AlternateID都具有该值。因此,其中一个将始终为空。 我的Web api方法是 当其中一个值为 null 时,$http.get 生成的 url 如下所示: 或者 这不符合我的Web API方法。 但是,如果我使用 它工作了。我可以在我的参数中将值硬编码为null,但是我想
在一个基于NodeJS的项目中,loopback-component-explorer(2.7.0)附带的Swagger没有显示HTML页面中的“参数”,我们可以在其中为Restendpoint提供所需的params,而不管http动词(例如GET、POST和PATCH等)。必须remoteMethod(...)定义遵循一些大摇大摆的要求吗? 谢了。
导致问题的两个endpoint位于根路径上,并且URL中只有一个path参数。它们都在一个具有@requestmapping(“/”)的控制器中,并对它们进行注释; 这两个endpoint工作正常,只是在Swagger呈现HTML时引起了一些问题。如果我删除它们,将显示HTML。我已经尝试将它们自己移动到控制器中,看看是否可以阻止swagger在swagger配置中访问它们。但是,它们似乎只需要存
在Spring MVC中, 当返回值包含重定向前缀时,viewResolver将其识别为需要重定向的特殊指示。视图名称的其余部分将被视为重定向URL。客户端将向该重定向URL发送一个新请求。 我们可以编写如下处理程序方法来处理重定向: 现在我们可以像这样在中访问这个重定向属性 通常我们可以在方法中访问这个重定向属性,但是当我在返回语句中指定一个URL作为参数化url时,如下所示 我无法访问重定向属
我找不到为什么Swagger没有显示带有文本区域“body”的POSTendpoint,以便我可以将JSON粘贴到其中。 我本以为会看到这样的页面,在PetStore中大摇大摆地发布 但我的表格只是在我点击“试用”后发布的 你能帮我一下吗? 专家 配置 } 应用程序 } 促销SwaggerBundle } 终点,终点