2016-12-25 10 views
1

Вот моя системная архитектура потока данных для создания записи.Могу ли я использовать CorrelationId системы обмена сообщениями в качестве первичного ключа и его можно использовать для дальнейшей коммутации

Клиенты ====> RabbitMQ ====> (RESTful обслуживание, а также слушает RabbitMQ)

Однако, клиенты могут также получить прямой доступ к RESTful службы по REST конечными точками для выборки записи.

Чтобы однозначно идентифицировать запись, клиент отправляет «CorrelationId» (UUID/GUID). Поскольку клиенты генерируют GUID, могут ли клиенты использовать один и тот же идентификатор GUID в качестве идентификатора ресурса для доступа к ресурсам из службы RESTful?

Пример: http://MyApi/Resource/GUID

Я знаю, идентификатор GUID 32 символов длиной для идентификатора. Это немного странно, кроме этого вы видите нарушение RESTful шаблона дизайна?

Пожалуйста, предложите мне рекомендованный подход.

Спасибо, Пандиараян

ответ

1

Там нет проблемы с позволяя GUID в качестве уникального идентификатора для ресурса. REST ничего не говорит о том, как должен выглядеть URI. Есть некоторые компромиссы (менее понятные для человека, более безопасные), но в большинстве случаев ничего особого не вызывает. Так что, если это правильно для вас, сделайте это.