Как проверить, действителен ли идентификатор объекта Datomic?Проверка достоверности идентификатора объекта Datomic
Я использую Scala и Datomisca, но любой тест, вероятно, также применим к Clojure и Datomic.
Я рассматриваю с помощью
connection.database.entity(id).toMap.nonEmpty
на предположении, что действующий субъект будет иметь по крайней мере один атрибут.
Есть ли лучший, более безопасный способ сделать это?
Дополнительные комментарии (объединенные от группы) - вы не должны в конечном итоге иметь идентификатор объекта, статус которого вы не уверены. Причинами этого являются: (1) Объекты не идеальны для внешних облицовок - UUID, электронные письма и т. Д. Лучше. См. Http://docs.datomic.com/identity.html (2) Идентификаторы объектов не гарантируются для сохранения в базах данных. В настоящее время это детализация, а не часть контракта, что базы данных сохраняют идентификаторы сущностей при резервном копировании/восстановлении. Если вам нужно переписать журнал одного db в другой, то при осколке они не будут сохранены. –
Наше приложение не хранит идентификаторы сущностей во внешних местоположениях, но мы возвращаем их из вызовов REST. Затем браузер может включать идентификаторы в последующие вызовы, встроенные в URL-адреса. Я ищу способ проверить, что встроенный идентификатор действителен и не был ошибочно изменен кодом JavaScript браузера («доверять, но проверять»). – Ralph