Как сгенерировать хороший идентификатор в документах ATOM?

StackOverflow https://stackoverflow.com/questions/150741

  •  02-07-2019
  •  | 
  •  

Вопрос

Очевидно, что использование URL-адреса никуда не годится - почему это так, и как вы создаете хороший URL-адрес?

Это было полезно?

Решение

Статья Марка Пилигрима Как сделать хороший идентификатор в Atom это хорошо.Вот часть этого:

Почему вы не должны использовать свою постоянную ссылку в качестве идентификатора атома

Допустимо использовать ваш URL-адрес постоянной ссылки в качестве вашего <id>, но я не рекомендую это делать потому что это может создать путаницу в отношении какой элемент следует рассматривать как постоянную ссылку.Разработчики, которые не читают спецификации, посмотрят на ваш канал Atom и увидят две идентичные части информации, выберут одну и используют ее как постоянную ссылку, а некоторые из них выберут неправильно.Затем они переходят на другой канал, где два элемента не идентичны, и они путаются.

В Атоме, <link rel="alternate"> является всегда постоянной ссылкой на запись.<id> всегда является уникальным идентификатором для записи.Оба необходимы, но они служат разным целям.Идентификатор записи никогда не должен меняться, даже если изменится постоянная ссылка .

“Изменение постоянной ссылки”?Да, постоянные ссылки не так постоянны, как вы могли бы подумай.Вот пример, который произошел со мной.Мои URL-адреса постоянных ссылок были автоматически сгенерированы на основе заголовка из моей записи, но затем я обновил запись и изменил заголовок.Угадайте что, "постоянная” ссылка только что изменилась!Если вы умны, вы можете использовать HTTP-перенаправление для перенаправления посетителей со старой постоянной ссылки на новую (что я и сделал).Но вы не можете перенаправить ID.

Идентификатор записи Atom никогда не должен меняться!В идеале вы должны сгенерировать идентификатор записи один раз и сохранить его где-нибудь.Если вы автоматически генерируете его раз за разом из данных, которые меняются с течением времени, то идентификатор записи изменится, что противоречит цели .

Другие советы

Используйте GUID в качестве идентификатора.

зависит от того, какой язык вы используете, но вы могли бы использовать

Система.Guid для .NET.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top