gpt4 book ai didi

c# - 访问内部 API Controller

转载 作者:行者123 更新时间:2023-12-02 03:43:56 26 4
gpt4 key购买 nike

有没有办法在不使用 API 的 url 的情况下从另一个类调用您的应用程序 API Controller ?

例如我在“personContoller”中有这个方法

    public async Task<ActionResult> GetPersonRecord(string id)
{
Person person;
var link = "api/entity/Person/" + id + "?format=json";
string results = await OneIMAction(link);
person = JsonConvert.DeserializeObject<Person>(results);
string json = JsonConvert.SerializeObject(person, Formatting.Indented);
return Content(json, "application/json");
}

如何在同一应用程序的另一个 C# 类中访问此方法的 JSON 结果,而无需使用 Web 请求?这可能吗?

最佳答案

根据单一职责原则(S.O.L.I.D. 的第一个原则),“每个模块或类都应该对软件提供的功能的单一部分负责”。

继承自 API Controller 的类必须响应 Web 请求。如果我们希望一个 API Controller 可以访问另一个 API Controller 的某些操作,我们应该创建一个 Web 请求并调用该 URL(不推荐)。如果我们希望一个任务被多个方法调用,我们将它转​​移到 Facade,它被称为类服务。想要使用它的 API Controller 的所有操作都将使用类服务。

public class TestService 
{
public void Do()
{
// ...
}
}


public class HomeController1 : Controller
{
public ActionResult Index()
{
var service = new TestService();
service.Do();
return View();
}
}


public class HomeController2 : Controller
{
public ActionResult Index()
{
var service = new TestService();
service.Do();
return View();
}
}

关于c# - 访问内部 API Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47443083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com