Во-первых, давайте посмотрим на более общий вопрос «как настроить публичный API», мое первое упражнение - определить, какая информация нужна потребителю службы.Я также смотрю и вижу, есть ли конкретное наименование компании в объектной модели.Затем я создаю модель сервиса (контракт данных, если вы хотите, чтобы WCF был специфичен), который соответствует представлению, которое я хочу показать потребителю.Это включает в себя уникальный ключ, который чаще представляет собой строку SKU (читаемый человеком ключ), чем GUID / int (фактический производный первичный ключ), поскольку SKU является открытым, а средство хранения в базе данных - нет.Итак, в общем, я бы не стал раскрывать эти концепции первичного ключа, если бы это был GUID.
Теперь перейдем к вопросу: «Видите ли вы проблемы с этим подходом».Я остановлюсь на более общих понятиях, чтобы вы могли принять более обоснованное решение, поскольку нет 100% правильного / неправильного ответа.
Пока это машина от машины к, а использование GUID является чем-то и другимсистемы знают, я не вижу ничего особенно страшного в этом подходе.Если этот конечный результат идет в удобочитаемую систему, с которой необходимо взаимодействовать с GUID, то у вас есть проблема.
Одна потенциальная проблема с системой - предоставление вашей собственной первичной ключевой информации клиентским или клиентским системам, которыене нужно понимать этот уровень детализации.Если это на самом деле «полупубличный» список избранных поставщиков, «риск» может быть меньше.Это основная проблема, которую я вижу.
Можно поспорить о весе GUID (128 бит) по сравнению с меньшим идентификатором, но это ложный ответ, IMO, поскольку задержка сети больше, чем перевешивает отправку несколькихбольше байтов в качестве параметра запроса.