Я строю API с ServiceStack. Я хочу, чтобы каждый запрос имел уникальный идентификатор, чтобы я мог проследить его через систему (которая распространяется).Каковы мои параметры в ServiceStack для назначения уникального идентификатора для каждого запроса?
У меня есть сборник контрактов, содержащий мои DTO API, и поэтому я думал, что естественным местом было бы сделать каждый из Request
базовым классом, который имел закрытый защищенный конструктор без параметров, который назначил новый ID (вероятно, GUID в порядке).
Тем не менее, можно будет использовать мой API через клиентов, не обязательно используя контрактную сборку DTOs - голый, если хотите. В этот момент клиенты могут назначать любые идентификаторы, которые им нравятся (поскольку свойство будет строкой, подлежащей размещению, и я хочу, чтобы присвоение идентификатора было быстрым).
Таким образом, это заставляет меня думать, что служба должна присваивать идентификаторы запроса, когда запросы поступают в систему. Итак, я сейчас думаю, что лучше всего иметь свойство идентификатора для каждого запроса DTO, который проверяется как пустой API-интерфейсом - клиенты не могут его установить. Затем фильтр before-everything присваивает значение свойству DTO.
Разве это разумно?
Есть ли более элегантный способ сделать это (что по-прежнему работает против голых клиентов?)?
Таким образом, эффект ily игнорируя любое значение, которое клиент мог установить на пути. Nice; благодаря :) –