gpt4 book ai didi

asp.net-mvc - 在项目之间共享 URL 的优雅方式?

转载 作者:行者123 更新时间:2023-12-02 01:41:06 24 4
gpt4 key购买 nike

假设我有两个 Web 项目,一个 ASP.NET MVC 和另一个 ASP.NET WebAPI。

它们在不同的项目中并在不同的主机(www.whatever.com 和 data.whatever.com)中运行。

MVC项目需要指明端点在WebApi项目中的绝对URL。

哪种方式更优雅?我想避免的是对 URL 进行硬编码。也许是共享路由集合并使用一些技巧来生成提供主机名的完整 url。

最佳答案

这是不可能的。虽然您可以执行一些动态程序集加载来创建一个使用另一个项目的路由的 UrlHelper,但这很重要并且需要项目之间的硬依赖性,这在某种程度上否定了将它们分开的目的首先进入不同的项目。就其值(value)而言,如果您的 Web Api Controller 与 MVC Controller 驻留在同一项目中(这完全没问题),那么您可以像任何其他操作一样获取 Web Api 端点的 URL。

即使您确实通过在其他程序集中动态加载创建了 UrlHelper仍然 只会为您提供路径。您的 Web Api 项目的实际域和应用程序根目录不可能在 Web Api 项目本身之外获得。

虽然我完全同意您不对 Web Api 端点 URL 进行硬编码的愿望,但您真的别无选择。您可以通过将对 Web Api 的调用包装在某个类中来稍微缓解这种情况,这样至少可以将所有 URL 保存在一个地方。您也可以考虑像 Refit 这样的东西,这将允许您创建一个或多个表示您的 Web Api 的接口(interface),允许您抽象化 URL 和所有用于访问它的基础结构,并在一次失败中处理响应。

关于asp.net-mvc - 在项目之间共享 URL 的优雅方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28568008/

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