'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 Errors property.

  1. 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