我有一个使用.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个参数时,我必须做些不同的事情吗?还是我做错了什么?
答案 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。