如何从ASP返回类型化的单个结果.. NET核心API使用IResult?



在后台,我想用ASP开发一个新的API。. NET Core 7和使用控制器,我想使用最佳实践来返回类型的结果,以简化文档,例如。

如果我想从API返回一个类型化的结果,我可以这样做:

[HttpGet()]  
public ActionResult<List<Products>> GetAllProducts()
{
var beers = repository.GetAllProducts();
return beers;
}

但是,我的问题是,如果我想返回并使用来自IResult的派生类之一而不是(出于一致性的原因),那么下面的代码将不起作用,因为Results需要两个返回类型。

[HttpGet()]  
public Results<Products> GetAllProducts()
{
var beers = repository.GetAllProducts();
return beers;
}

当然,我可以这样做:

[HttpGet()]  
public Results<Products,BadRequest> GetAllProducts()
{
var beers = repository.GetAllProducts();
return beers;
}

但这听起来有点傻。

如果我想使用IResult并且我只想返回一种类型,那么推荐的结果类型是什么?或者是ActionResult唯一的选择?

我觉得得到一点更干净的代码和现代,我想坚持基于IResult的类型,而不是与IActionResult混合。

这是你需要的吗

[HttpGet()]
public IResult GetAllProducts()
{
var beers = repository.GetAllProducts();
return Results.Ok(beers);
}

相关内容

  • 没有找到相关文章

最新更新