Web API:使用不同配置的实践

本文关键字:配置 API Web | 更新日期: 2023-09-27 17:50:33

也许你可以给我一个关于良好实践的提示:为了学习更多关于Web API的知识,我正在尝试创建一个Web- service,它可以帮助完成一些与TFS的工作。如果客户端可以通过传递kindahow对象来选择他想要使用的TFS,这将是非常酷的,该对象包含所需的数据,因为TFS服务URL等。但这给我带来了一些麻烦:我创建了一个名为tfsconfiguration的类型,以传递这些信息,但这有一些缺点:

  • 我不能使用Get-Method,因为我需要通过Body
  • 传递这个对象
  • 每个控制器中的每个方法都需要传递这个对象
  • 我(认为我)不能使用依赖注入,因为我需要将这个tfs参数传递给控制器后面的层

我猜其他方法都会损害开闭原则,因为控制器确实不知道使用了哪个具体的TFS。

是否有很好的可能性使这些东西工作?如果不是,那么这种情况下的最佳情况是什么?

Web API:使用不同配置的实践

我不能使用Get-Method,因为我需要通过Body

传递这个对象

ModelBinder可以从URI绑定。

每个控制器中的每个方法都需要传递这个对象

或者让用户在调用时将其存储在会话中,并在其他调用时从会话中读取。

我(认为我)不能使用依赖注入,因为我需要将这个tfs参数传递给控制器后面的层

你为什么要注射这个?

您可以创建一个接受TfsConfiguration对象并返回一个令牌(例如GUID)的POST端点,该令牌通过URL或自定义头传递给GET端点。流可以是:

  1. POST tfsconfiguration到api/tfstoken,它返回令牌
  2. 需要令牌的路由的url形式为api/tfstoken/…