我们如何在ATOM文档中生成良好的ID?

时间:2020-03-06 14:53:51  来源:igfitidea点击:

显然,使用URL不好,为什么会这样,又如何生成一个好的URL?

解决方案

使用GUID作为ID。

取决于我们使用哪种语言,但是我们可以使用

.NET的System.Guid。

马克·皮尔格里姆(Mark Pilgrim)的文章如何在Atom中获得良好的ID是件好事。这是其中的一部分:

Why you shouldn’t use your permalink as an Atom ID
  
  It’s valid to use your permalink URL
  as your <id>, but I discourage it
  because it can create confusion about
  which element should be treated as the
  permalink. Developers who don’t read
  specs will look at your Atom feed, and
  they see two identical pieces of
  information, and they pick one and use
  it as the permalink, and some of them
  will pick incorrectly. Then they go to
  another feed where the two elements
  are not identical, and they get
  confused.
  
  In Atom, <link rel="alternate"> is
  always the permalink of the entry.
  <id> is always a unique identifier for
  the entry. Both are required, but they
  serve different purposes. An entry ID
  should never change, even if the
  permalink changes.
  
  “Permalink changes”? Yes, permalinks
  are not as permanent as you might
  think. Here’s an example that happened
  to me. My permalink URLs were
  automatically generated from the title
  of my entry, but then I updated an
  entry and changed the title. Guess
  what, the “permanent” link just
  changed! If you’re clever, you can use
  an HTTP redirect to redirect visitors
  from the old permalink to the new one
  (and I did). But you can’t redirect an
  ID.
  
  The ID of an Atom entry must never
  change! Ideally, you should generate
  the ID of an entry once, and store it
  somewhere. If you’re auto-generating
  it time after time from data that
  changes over time, then the entry’s ID
  will change, which defeats the
  purpose.