【问题标题】:C# Web API - POST with ID onlyC# Web API - 仅带有 ID 的 POST
【发布时间】:2019-06-07 12:57:51
【问题描述】:

我有一个克隆记录的端点,但为此我只需要使用一个 ID。因为我只需要使用一个 Id 我已经写了这个端点:

[HttpPost]
[Route("test/clone/{id}")]
[SwaggerResponse(HttpStatusCode.OK, description: "Clone an existing record", type: typeof(int))]
public async Task<IHttpActionResult> Clone(int id)
{
    var newId = _service.DoSomething(id);
    return Ok(newId);
}

然后我想在测试中调用这个端点,但我不知道怎么写:

 var result =
            await WebServer.HttpClient.PostAsync($"test/clone/{id}", // WHAT GOES HERE??) 

  var newId = await result.Content.ReadAsAsync<int>();

有谁知道我如何使用 HttpClient 调用此端点?

【问题讨论】:

  • 如果你想成为 RESTful,那么你应该有一个创建克隆的 GET 方法,然后一个允许你保存新创建的克隆的 POST 方法。该克隆将是WHAT GOES HERE

标签: c# asp.net-web-api httpclient


【解决方案1】:

你可以直接传递null,它会在没有正文的情况下发送它 例如

 var result =
            await WebServer.HttpClient.PostAsync($"test/clone/{id}", null) 

【讨论】:

  • 这会不会导致问题,因为 API 需要一个 int 而您发送它为 null?
  • 不,因为他通过 id 作为路线的一部分,而不是身体
猜你喜欢
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
相关资源
最近更新 更多