假設我有兩個端點:
[HttpGet ("{serialNumber}")]
和
[HttpGet ("summary")].
結果,我的應用程式將 api/summary 視為 api/{serialNumber} 其中 {serialNumber} = "summary" 并且我得到了我想要的錯誤行為。
uj5u.com熱心網友回復:
解決它的唯一方法您必須在路由中添加操作名稱
[HttpGet ("GetSerialNumber/{serialNumber}")]
public ActionResult GetSerialNumber(string serialNumber)
and
[HttpGet ("GetSummary/{summary}")]
public ActionResult GetSummary(string summary)
uj5u.com熱心網友回復:
我在我的機器上嘗試了不同的 sdks:net3.1、.net5 和 .net6
...按預期作業。
[HttpGet("values/summary")]
public IActionResult GetSummary()
{
return Ok(new ValueObject[] { new ValueObject { Value = "SUMMARY" } });
}
[HttpGet("values/{serialNumber}")]
public IActionResult GetBySerial([FromRoute] string serialNumber)
{
return Ok(new ValueObject[] { new ValueObject { Value = serialNumber } });
}
如果我現在呼叫/values/summary結果是
{
"value": "SUMMARY"
}
否則如果我呼叫/values/abcde結果是
{
"value": "abcde"
}
所以在我看來,如果你從來沒有{serialNumber} == 'summary'這個 API 應該以正確的方式作業。
如果您可能'summary' == {serialNumber}像之前描述的那樣使用顯式端點(@Serge)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367132.html
