NuGet API Wrapper - ProblemDetails 类处理

Mag*_*ser 5 .net c# api error-handling nuget

我在将一些 API 调用包装在不同的 NuGet 包中时遇到了问题。

由于我最近发现的包,API 返回的所有错误都使用ProblemDetails/ValidationProblemDetailsHellang.Middleware.ProblemDetails

现在的问题是:将 API 包装器 NuGet 包添加到我的客户端应用程序时,我不想将反序列化任务留给response.Content它们(调用成功与否)。

这将主要产生 3 种响应类型:

  • Success=>Expected常规对象,可以针对 API 公开的每个方法进行更改
  • BadRequest => ValidationProblemDetails
  • 任何其他错误 => ProblemDetails

我在包装器中处理反序列化的主要问题是ProblemDetails/ValidationProblemDetails类“深深地”植根于Microsoft.AspNet.Mvc.Core命名空间,因此在相应的 NuGet 包中(我知道没有抽象)。

在我看来,将这样的包包含为对简单 API 包装器的直接依赖似乎有些过分(但我这样想可能是错误的,请随时纠正我)。

不幸的是,根据https://github.com/dotnet/aspnetcore/issues/7679,情况不会很快改变。

我曾想过制作我自己的 NuGet 包,包括这些类,并将其作为分布在我所有包装器中的依赖项,但我不太喜欢这个解决方案。

如果有人有更好的想法或解决方案来处理这个问题(ProblemDetails直接从 API 包装器返回一个合适的对象),他们非常受欢迎。