重要提示:这个问题实际上并不是一个真正的 ASP.NET 问题。任何对 URLS 有所了解的人都可以回答。我只是碰巧使用了 ASP.NET 路由,所以包含了这个细节。
简而言之,我的问题是:
“我应该设计什么样的 URL 格式,我可以将其提供给外部各方,以到达我网站上的特定位置,这将是未来的证明。[我是创建这些 'REST' URL 的新手]。”
我需要一个 ASP.NET 路由 URL,该 URL 将提供给第三方以跟踪营销活动。它本质上是一个“网关” URL,将用户重定向到我们网站上的特定页面,该页面可能是主页、特殊竞赛或特定产品。
除了尝试捕获推荐人之外,我还需要接收一个合作伙伴 ID、一个活动编号和可能的其他参数。我想提供一条路线来做到这一点,但我想第一次把它做好,因为很明显,一旦它被外部使用,我就不能轻易地改变它。
这样的东西看起来怎么样?
routes.MapRoute(
"3rd-party-campaign-route",
"campaign/{destination}/{partnerid}/{campaignid}/{custom}",
new
{
controller = "Campaign",
action = "Redirect",
custom = (string)null // optional so we need to set it null
}
);
活动:可能不希望在实际链接中出现“活动”一词——因为用户会在 URL 栏中看到它。我可能会将其更改为像“c”这样的神秘事物。
目的地:指示链接将把用户带到我们网站上的哪个页面。例如 PR 将用户引导到产品页面。
partnerid:我们分配的公司 ID - 例如堆栈溢出的 SO。
Campaignid:活动 ID,例如 123 - 每个合作伙伴唯一。我已经意识到,我认为我更希望 3rd 方公司能够自己管理活动 ID,而不是我们提供一个网站来“创建活动”。不过,我还不完全确定这一点。
custom:自定义数据(可选)。我可以在不破坏现有 URL 的情况下添加更多自定义数据参数
注意:我有“目的地”的原因是因为活动 ID 是由客户决定的,所以他们还需要告诉我们该活动的目的地在哪里。或者,他们可以向我们“注册”一个活动。这可能是避免人们输入随机广告系列 ID 的更好解决方案,但我并不太担心这一点,我认为这个系统提供了更大的灵活性。
此外,我们可能还想知道他们用来链接到我们的图片(这样我们就可以跟踪哪个横幅效果最好)。我认为这是一个新的活动 ID 的候选人,而不是自定义数据字段,但我不确定。
目前我正在使用一个非常原始的 URL,例如http://example.com?cid=123。在这种情况下,广告系列 ID 需要发给第三方,这不是一个非常灵活的系统。我想立即转移到新客户的新系统。
对未来验证这个系统有什么想法吗?我可能错过了什么?我知道我总是可以添加新格式,但如果这是个好主意,我想尽可能多地使用这种格式。