我有一个基于 asp.net mvc 的大量使用的 REST 服务。其中一个资源适用于您使用如下路线指定给定用户的用户:
.../User/{id}.{format}
前任:
http://mysvc.com/User/abc123.json
在这种情况下,id 是用户名。我们目前有一个路线图,它接受除句点之外的所有字符,以免与 [可选] 格式扩展名发生冲突。
路线地图:
/User/{id[^\\.]+}
好吧,现在我们有了一个使用电子邮件地址作为用户名的新客户端。这显然会导致一个问题。我们已经考虑取消格式扩展支持,因为所有已知的客户端当前都使用 json。但是,我不希望这样做并修改我的路线以接受格式或 json 或 xml 并且仍然允许句点。
我觉得应该有一种方法来格式化这个正则表达式,以便说 id 可能包含句点并且如果提供它仍然映射格式。但是,我目前有一个心理障碍。