NSwag生成的客户端未发送两个参数

时间:2020-01-28 17:52:31

标签: c# api nswag

我有一个使用.NET Core 2.2的API项目,该项目包括带有两个参数的调用:

[HttpGet(nameof(VerifyCreds))]
[Route("VerifyCreds/{fName}/{lName}")]
public ActionResult<List<VerifyCredsModel>> VerifyCreds(string fName, string lName)
{
   var result = _service.VerifyCreds(fName, lName);

   return result;
}

直接从API调用时,此调用工作正常。通过参数,并使用参数过滤器传递正确的数据。

在使用nswag在.NET Core 3.0项目中生成客户端时,客户端代码似乎可以看到参数,但是在创建url(即“ urlBuilder”字符串)时,它只是调用基本API方法而无需任何参数,因此它将返回所有记录。我已经从客户端到api逐步完成了该过程,但这些参数并没有使它遍及整个网络。我最初将它们作为可选参数,但是在读取了不支持可选参数后,我删除了所有这些参数(还是真的吗?)。

使用2个参数时,我必须做些不同的事情吗?还是我做错了什么?

1 个答案:

答案 0 :(得分:0)

我发现有两种解决方法:

a。将[FromQuery]属性添加到参数:

[HttpGet(nameof(VerifyCreds))]
[Route("VerifyCreds/{fName}/{lName}")]
public ActionResult<List<VerifyCredsModel>> VerifyCreds([FromQuery]string fName, [FromQuery]string lName)
    {
       var result = _service.VerifyCreds(fName, lName);

       return result;
    }

b。删除路线属性:

[HttpGet(nameof(VerifyCreds))]
public ActionResult<List<VerifyCredsModel>> VerifyCreds(string fName, string lName)
    {
       var result = _service.VerifyCreds(fName, lName);

       return result;
    }

如果有人对是否首选某人有更多详细信息,请告诉我。否则,我现在选择选项2。