如何按名称存储和调用 web API?

How to store and call web API by name?

我想把API的名字存到数据库里,以后再调用。我该怎么做?

示例:

我想把这些API的名字(Action1Action2Action3)保存到数据库中,需要的时候调用(因为我想要重新排序或删除 UI):

中的某些操作
public interface IMyAppService : IApplicationService
    {
        Task Action1();
        Task Action2(); 
        Task Action3();          
    }

那么如何将 API 名称作为字符串存储在数据库中以及之后如何执行呢?我应该这样存放吗?

"http://localhost/api/services/mpa/myApp/Action1"
"http://localhost/api/services/mpa/myApp/Action2"
"http://localhost/api/services/mpa/myApp/Action3"

你为什么不使用审计??

您可以使用

轻松地将所有应用程序交互(甚至对您的服务的调用)跟踪到 Abp 审计日志 table

ABP Audit Documentation

您有 2 个选择:

  1. 通过 URL + 使用 HttpClient

    保存
    • 优点:抛出异常时事务回滚由ABP框架处理。
    • 缺点:您需要处理 Web 请求、授权和响应的反序列化。
  2. 通过AppService和方法名保存它+使用反射。

    • 专业版:在 IAbpSession.Use() 块中,授权由 ABP 框架处理。
    • 缺点:您可能需要处理事务和异常 ⇒ 逻辑泄漏给调用者。

为了完整起见,这个问题是一系列其他 Stack Overflow 问题中的第一个:

  1. 这个问题。 (10 月 23 日)
  2. (10 月 31 日)— 选项 1
  3. (10 月 31 日)— 选项 1,切换到选项 2
  4. (11 月 3 日)— 选项 2