与 Umbraco 14 中的自定义 API 端点通信 - 第 1 部分
Posted: Mon Mar 24, 2025 3:42 am
在 Umbraco 14 中通过 Typescript 与自定义 API 进行通信给我的团队带来了不少问题,考虑到目前关于这些问题的文档普遍缺乏,所以我想写一个博客来记录我是如何做到的。这是完美的方法吗?可能不是,但它可能会对那些希望在 Umbraco 14 中实现自己的自定义 API 的人有所帮助。
我们的案例
目前,建立一个新网站需要我们花费大量时间在简单、重复的手动任务上,例如创建每次安装中使用的文档类型,因此我们希望研究如何自动化这一过程。我们的最终目标是编写一个应用程序,可以与 Umbraco 14 管理 API 进行 币安数据 远程通信,并自动创建我们在新项目中经常使用的文档类型、字典项等。在这个过程的早期,我遇到了身份验证所需的承载令牌的问题。当然,可以使用 Postman 等连接到新安装上的 API 并复制承载令牌,但我认为如果我们的发送应用程序能够进行自我身份验证会更方便。因此,我需要能够创建自己的自定义客户端 ID,以便用来验证我的应用程序以便与管理 API 进行通信。
解决方案(或解决方案的开始)
我能够在 Umbraco 的“umbracoOpenIddictApplications”数据库表中找到现有的 Auth0 客户端 ID,但是我无法使用其中任何一个,因为我需要设置自定义返回 URL,这需要是我的发送应用程序的 URL。因此,我决定编写一个可以安装到新安装中的包,这将允许我添加自定义 OpenID 应用程序,然后可以在从发送应用程序调用管理 API 时使用该应用程序来验证自己身份。
我们的案例
目前,建立一个新网站需要我们花费大量时间在简单、重复的手动任务上,例如创建每次安装中使用的文档类型,因此我们希望研究如何自动化这一过程。我们的最终目标是编写一个应用程序,可以与 Umbraco 14 管理 API 进行 币安数据 远程通信,并自动创建我们在新项目中经常使用的文档类型、字典项等。在这个过程的早期,我遇到了身份验证所需的承载令牌的问题。当然,可以使用 Postman 等连接到新安装上的 API 并复制承载令牌,但我认为如果我们的发送应用程序能够进行自我身份验证会更方便。因此,我需要能够创建自己的自定义客户端 ID,以便用来验证我的应用程序以便与管理 API 进行通信。
解决方案(或解决方案的开始)
我能够在 Umbraco 的“umbracoOpenIddictApplications”数据库表中找到现有的 Auth0 客户端 ID,但是我无法使用其中任何一个,因为我需要设置自定义返回 URL,这需要是我的发送应用程序的 URL。因此,我决定编写一个可以安装到新安装中的包,这将允许我添加自定义 OpenID 应用程序,然后可以在从发送应用程序调用管理 API 时使用该应用程序来验证自己身份。