'When Stitching using HotChocolate, How Can A Remote Schema's Type Be Renamed?
Here's my scenario. I have a GraphQL gateway that stitches a dozen or so remote schemas together, using the following code:
services.AddHttpClient(schema.TypeName, c => c.BaseAddress = new Uri(schema.Url));
public virtual void Add(IRequestExecutorBuilder builder, bool ignoreRootTypes = true)
{
var type = this.GetType();
builder.AddRemoteSchema(type.Name, ignoreRootTypes);
}
Assume that the remote schemas are immutable. One of the remote schemas has a type called Name. This appears to be a reserved keyword, because during stitching, I get the exception:
For more details look at the
Errorsproperty.
- An item with the same key has already been added. Key: Name
I can correct this error by modifying the Name type of the remote service to be something like PersonName, however, as I mentioned above, these external schemas should be immutable.
Is there a way to rename a restricted type before this exception is thrown at the Gateway level?
Solution 1:[1]
Add a call to RenameType:
public virtual void Add(IRequestExecutorBuilder builder, bool ignoreRootTypes = true)
{
var type = this.GetType();
builder.AddRemoteSchema(type.Name, ignoreRootTypes);
builder.RenameType("Name", "PersonName", type.Name);
}
This will rename the incoming type from your remote schema to something else.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Kyle Trauberman |
