如果我需要跟踪标识在浏览器中显示和修改的资源的密钥或标记,那么使用的编程模式是什么?
例如,如果我显示电影列表和连接ajax呼叫用户签出或查看这些电影,我假设我会在html中嵌入标识符,然后将其传递回服务器。
使用数据库密钥是不好的做法?在hrefs中公开标识符是不好的做法吗?
答案 0 :(得分:1)
我认为向客户端公开资源标识符并不是一种不好的做法。这样做可能会无缘无故地复杂化您的系统。如果数据库密钥实际上是您的实体密钥,则可以透明地使用它。
我能记住在客户端显示和编辑数据的唯一模式是DTO。
关于HREF和您的标识符,REST架构甚至会建议您这样做。这是一种常见的做法; )
希望它对你有所帮助。
答案 1 :(得分:1)
首先,我建议使用 URI来识别内容。它是网络运作的核心。
将您的数据库ID暴露给客户端并不算太糟糕,但您应该考虑:
从URI中删除数据库ID建议使用另一个唯一标识符,该标识符不是某个数据库中的主键。
考虑如何Twitter自己的Twitter帐户有list of the team:http://twitter.com/twitter/team
设计良好的URI暴露很少,因此他们可以更改整个实现,而不会出现URI问题。推特上的一条推文看起来像主键http://twitter.com/meangrape/status/18622784109
,但有谁知道。