c# - 从同一应用程序中的另一个 Web API 调用 Web Api

标签 c# asp.net-mvc asp.net-web-api

我有几个用 MVC WebAPI 开发的 webAPI,例如

public IHttpActionResult SendBroadcast(FinalPayload FinalPayload)

我想从这个 API 内部调用另一个 Web api。我的所有 API 都在同一个应用程序中。第二个API的签名是

public IHttpActionResult SendMessage(Notifications)

从我尝试的第一个 API

this.SendMessage(Notifications)

并收到错误消息,例如引用静态对象....

我想知道是否允许这种调用 webAPI 的方式,或者我是否必须调用 Web 客户端或类似的客户端。

对此的任何帮助将不胜感激。

最佳答案

第一种方法

您必须重新设计应用程序中的代码,即解决方案。

  • 创建一个类库项目。为不同项目通用和使用的逻辑/功能创建一个接口(interface)。
  • 在类库项目中实现接口(interface)。
  • 在不同的项目(即 WebAPI 项目)中使用该接口(interface)来访问通用功能。

第二种方法

正如您所想,您当然可以创建一个 Web 客户端来访问另一个项目中的 Web API。

  • 这不是一个好的设计,您的问题并未真正得到解决(只是被规避)。
  • 效率低下,因为 Web 客户端将使用 http 请求来访问同一解决方案中的代码。
  • 为了将来的维护,您最终可能会创建多个网络客户端。

关于c# - 从同一应用程序中的另一个 Web API 调用 Web Api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43528456/

相关文章:

c# - 错误 : Word 2013 VSTO Cannot Handle Image in Header Formatted Behind or In Front of Text

asp.net-mvc - Steve Sanderson 的 BeginCollectionItem 助手无法正确绑定(bind)

javascript - 从 MVC 中的自定义 View 模型在 Razor 页面上使用 JavaScript 创建 JSON 对象数组?

c# - 如何不将属性与 JSON 数据绑定(bind)

c# - "Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions"错误

c# - 未调用 MVC API2 ActionFilterAttribute

c# - .NET 反射有多贵?

c# - 仅在 Razor 中获取日期时间的 MM/dd/yyyy

asp.net-web-api - 默认请求 header 不接受任何值,它始终为空

asp.net - 如何使用 Visual Studio 2015 为网站项目配置不同的虚拟目录