HTTP POST JSON数据,并将查询字符串值查询到dotNet core 3.0中的Web API

问题描述 投票:0回答:1

背景:

我正在尝试使用dotNet core 3.0来实现Web API,以便它可以接受JSON数据的POST版本。

我已经实现了这一点,但是还有一个额外的复杂性:发布JSON数据的系统通过出现在查询字符串上的API密钥提供身份验证。 (实际上-它提供3个查询字符串值:前两个值的api密钥,时间戳和基于共享密钥的MAC哈希。)

((我希望它以X-Api-Key值的形式出现在HTTP标头中,因为我以前已经通过此方法实现了安全性-但我没有选择))>

JSON数据实际上是相同类型的对象的列表,因此控制器方法上的绑定看起来像这样:

    [HttpPost]
    [ProducesResponseType(StatusCodes.Status201Created)]
    [ProducesResponseType(StatusCodes.Status400BadRequest)]
    [ProducesResponseType(StatusCodes.Status401Unauthorized)]
    [ProducesResponseType(StatusCodes.Status500InternalServerError)]
    public IActionResult AddMyStuffBatches(List<MyStuffBatch> batches) 

出现在查询字符串上的身份验证值实际上与模型无关,它们与流程上载的数据无关。因此,它们不应出现在batches列表中或作为MyStuffBatch特定实例的属性。

所以问题是:

我如何设计一个控制器来处理在查询字符串中传递的身份验证API密钥详细信息,同时(假定已传递了有效的API密钥等)仍像以前一样处理JSON有效负载?

背景:我正在尝试使用dotNet core 3.0实施Web API,以便它可以接受JSON数据的POST版本。我已经实现了,但是还有一个额外的复杂性:系统...

json asp.net-core-webapi model-binding
1个回答
0
投票

您可以在发布操作中使用[FromQuery]来绑定查询字符串中的参数,例如:

网址:

© www.soinside.com 2019 - 2024. All rights reserved.