如果我们使用api dll在web表单中调用wep api服务就可以了。我们将在同一台服务器上托管api和应用程序,并要求内部呼叫。
答案 0 :(得分:0)
你不清楚自己在追求什么。
首先,如果你编写某种API,那么你必须调用它来与它进行交互。这里没有中间立场。如果您不想打电话,那么您就不需要API。 API的目的是提供一种与某些数据存储交互的方式,因此在您的控制器后面,您有一个与数据库对话的层,例如,甚至是另一个API。
如果您不想拨打任何电话,那么为什么还要使用API呢?编写一个或多个类库,执行您需要的任何操作,并以这种方式与您的数据库进行交互。
我之前在一个项目中工作过,我有一些类似的情况,最后编写了类库,然后由UI项目和WebApi项目共享,因此您可以使用它们。这实际上很有效。如果你正在寻找类似的东西,那就是我要去的东西。保持感兴趣的东西分开,以便您可以使用API调用或直接dll引用进行公开。
答案 1 :(得分:0)
假设您的控制器方法看起来像这样:
public interface IService
{
Task<Value> GetValueAsync(int id);
}
public class Service : IService
{
public Task<Value> GetValueAsync(int id)
{
//...
// Code to return a value
//...
}
}
public class ValueController : ApiController
{
private IService _service;
public ValueController(IService service)
{
_service = service
}
public Task<IHttpActionResult> GetValueAsync(int id)
{
return Ok(await _service.GetValueAsync(id));
}
}
然后在Service类中调用该方法是完全可以的。我不会在控制器中调用该方法,因为这会导致比您可能想要处理的问题更多的问题。