Каковы рекомендуемые шаблоны программирования для передачи идентификаторов / ключей между сервером и клиентом? - PullRequest
3 голосов
/ 15 июля 2010

Если мне нужно отслеживать ключ или токен, который идентифицирует ресурс, отображаемый и изменяемый в браузере, каковы некоторые из используемых шаблонов программирования?

Например, если я отображаю список фильмов и подключаю ajax-вызовы для пользователей, чтобы оформить или просмотреть эти фильмы, я предполагаю, что я вставлю идентификатор в html, который затем будет возвращен на сервер.

Плохо ли использовать ключи базы данных? Это плохая практика выставлять идентификаторы в hrefs?

Ответы [ 2 ]

1 голос
/ 15 июля 2010

Для начала я предлагаю использовать URI для идентификации вещей .Это главное в работе Интернета.

Предоставление клиенту идентификаторов вашей базы данных не так уж и плохо, но вы должны учитывать:

  • Клиенты, которые знают идентификаторы базы данных и используют ихчтобы делать вещи вводят тонкую форму связи .Чем больше клиентов ожидают от этих идентификаторов (например, они уникальны), тем больше взаимосвязи.
  • Нужно ли клиентам знать, что у элементов вообще есть идентификаторы базы данных?Возможно, все в порядке, чтобы выставил идентификатор, скрытый внутри URI .Клиентам не нужно разбирать URI, чтобы разобраться во всем, поэтому вы не подвергаете их строгой демонстрации.
  • Если клиентам нужны идентификаторы базы данных, это может быть просто отображаемый идентификатор ?Затем вы можете встроить идентификатор базы данных в данные, передаваемые по проводам, но разметить его таким образом, чтобы было понятно, что этот идентификатор следует использовать только для показа пользователям идентификатора, в случае, если у них есть личный интерес (поскольку идентификаторутечка в другом месте).

Удаление идентификатора базы данных из URI предполагает наличие другого уникального идентификатора, который не является первичным ключом в какой-либо базе данных.

Рассмотрим, например, как собственный аккаунт Twitter в Twitter список команды : http://twitter.com/twitter/team Хорошо спроектированный URI предоставляет очень мало информации, поэтому они могут изменить всю свою реализацию без проблем с URI.В одном твите в твиттере есть нечто, похожее на первичный ключ http://twitter.com/meangrape/status/18622784109, но кто знает.

1 голос
/ 15 июля 2010

Я не считаю плохой практикой выставлять клиентам идентификатор ресурса.Это может привести к чрезмерному усложнению вашей системы без какой-либо причины.Если ключ базы данных фактически является ключом вашей сущности, вы можете использовать его прозрачно.

Единственный шаблон, который я могу запомнить для отображения и редактирования данных на стороне клиента, - это DTO.

О HREFи ваши идентификаторы, архитектура REST даже рекомендует вам сделать это.Это обычная практика;)

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...