当前位置: 首页 > 知识库问答 >
问题:

如何在 swagger 中为 .net 核心 api 方法制作非强制性参数

谢麒
2023-03-14

我注意到,虽然我在代码中设置了[HttpGet({id?})],但我的招摇过市索引页面呈现了一个必填字段id

以下是整个方法

/// <summary>
///  Returns all projects
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesDefaultResponseType]
[HttpGet("{id?}")]
public async Task<IActionResult> Get([FromRoute] int? id)
{
    return Ok(await Mediator.Send(new GetProjectsQuery { Id = id }));
}

我哪里出错了?


共有1个答案

吕修筠
2023-03-14

试试这个。从您的HttpVerb中删除id?,从方法签名中删除FromRoute

/// <summary>
///  Returns all projects
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesDefaultResponseType]
[HttpGet]
public async Task<IActionResult> Get(int? id)
{
    return Ok(await Mediator.Send(new GetProjectsQuery { Id = id }));
}
 类似资料:
  • 它工作得很好,但需要很多时间;假设我们在一个问答系统中使用它,那么对于每一个新的输入,都必须运行pipeAnnotation。正如你所知道的,每次都要提取一些规则,训练一些数据等,以生成一个带有NLP标记的句子,如POS,NER和...... 首先,我想用RMI和EJB解决这个问题,但是失败了,因为不管是什么JAVA架构,对于每一个新的句子,pipeAnnotation都应该从头开始学习。查看in

  • 知道如何正确设置控制器描述吗? 谢谢,马里奥

  • 我正在做一个我命名为“主项目”的项目。我至少有10个不同的小项目在那里,这个项目可能会增长。我对所有这些项目只有一个自信,因为所有这些项目都只使用一个dotnet核心web应用程序来进行推广。 例如,假设我有一个名为的项目和一个名为的项目。有三个不同的endpoint,分别名为、、、和。这两个不同的项目将出现在一个大摇大摆的UI中,如下所示: 我想做的是在一个dotnet核心web项目中设置多个不

  • 我们试图覆盖Swashbuckle/Swagger IO代码根命名约定,当它为现有的500多个控制器和相应的方法创建Angular API服务代理时。 目前正在将Net Core3 API与Angular打字脚本连接起来。 https://stackoverflow.com/a/54294810/13889515

  • 问题内容: 使用in声明完成了Objective-C中的类(或静态)方法。 如何在Swift中实现? 问题答案: 它们被称为 类型属性 和 类型方法 ,您可以使用或关键字。

  • 问题内容: 我必须创建许多非常相似的类,它们之间只有一种方法不同。因此,我认为创建抽象类将是实现此目标的好方法。但是我要覆盖的方法(例如,方法foo())没有默认行为。我不想保留任何默认实现,而是强制所有扩展类都实现此方法。我该怎么做呢? 问题答案: 您需要在基类上使用 抽象 方法: 这样,您无需指定默认行为 , 而是可以强制从继承的非抽象类指定的实现。