Сбой формата Hotchocolate Федерация схем GUID

#federation #hotchocolate

Вопрос:

У нас есть API шлюза с включенной прошивкой, и схема извлекается из кэша redis, куда базовые API помещают свою схему. Когда API запускаются, все в порядке — базовые API помещают свою схему в кэш, и шлюз считывает ее. Если я обновлю схему API, скажем, добавив строковое поле или int, чтобы проверить, обновит ли оно его, я получу эту ошибку при попытке обновить схему на banana cake pop

 "HotChocolate.SchemaException: For more details look at the `Errors` property.

1. Operation is not valid due to the current state of the object. (HotChocolate.Types.UuidType)

   at HotChocolate.Configuration.TypeInitializer.DiscoverTypes()
   at HotChocolate.Configuration.TypeInitializer.Initialize(Func`1 schemaResolver, IReadOnlySchemaOptions options)
   at HotChocolate.SchemaBuilder.Setup.InitializeTypes(SchemaBuilder builder, DescriptorContext context, IBindingLookup bindingLookup, IReadOnlyList`1 types, LazySchema lazySchema)
   at HotChocolate.SchemaBuilder.Setup.Create(SchemaBuilder builder)
   at HotChocolate.SchemaBuilder.Create()
   at HotChocolate.SchemaBuilder.HotChocolate.ISchemaBuilder.Create()
   at .... (cut for brevity)
 

После исследования мы обнаружили, что это происходит, когда мы добавляем инструкцию для форматирования вывода GUID, добавив:

 .AddType(new UuidType('D'))
 

К настройке API шлюза. Если удалить, то все, кажется, в порядке.
Есть идеи, можно ли это решить ? Действительно хотелось бы сохранить формат вывода идентификатора Guid в формате с тире.
Спасибо
Винсент

Комментарии:

1. вам нужно добавить это как на шлюзе, так и в нижестоящей службе. кстати. мы изменили формат по умолчанию для версии 12, чтобы включить тире.

2. Спасибо @MichaelIngmarStaib. Я попробую. Я видел ваши объявления в версии 12. Проверю это и вернусь к вам.