背景:
我正在尝试使用dotNet core 3.0来实现Web API,以便它可以接受JSON数据的POST版本。
我已经实现了这一点,但是还有一个额外的复杂性:发布JSON数据的系统通过出现在查询字符串上的API密钥提供身份验证。 (实际上-它提供3个查询字符串值:前两个值的api密钥,时间戳和基于共享密钥的MAC哈希。)
((我希望它以X-Api-Key值的形式出现在HTTP标头中,因为我以前已经通过此方法实现了安全性-但我没有选择))>
JSON数据实际上是相同类型的对象的列表,因此控制器方法上的绑定看起来像这样:
我如何设计一个控制器来处理在查询字符串中传递的身份验证API密钥详细信息,同时(假定已传递了有效的API密钥等)仍像以前一样处理JSON有效负载?[HttpPost] [ProducesResponseType(StatusCodes.Status201Created)] [ProducesResponseType(StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] public IActionResult AddMyStuffBatches(List<MyStuffBatch> batches)
出现在查询字符串上的身份验证值实际上与模型无关,它们与流程上载的数据无关。因此,它们不应出现在
batches
列表中或作为MyStuffBatch
特定实例的属性。所以问题是:
背景:我正在尝试使用dotNet core 3.0实施Web API,以便它可以接受JSON数据的POST版本。我已经实现了,但是还有一个额外的复杂性:系统...
您可以在发布操作中使用[FromQuery]
来绑定查询字符串中的参数,例如:
网址: