#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. Проверю это и вернусь к вам.