冲突可能由在Apollo客户端和DGS服务器之间定义相同的Graphql schema导致。解决方法是在DGS服务端上定义不同的schema路径。例如,在DGS服务器端,我们可以将其设置为:
@Component
public class DgsAppConfig {
@Bean
public DgsWebMvcConfigurer dgsWebMvcConfigurer() {
return new DgsWebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
// Allow all origins
.allowedOrigins("*")
// Allow all methods
.allowedMethods("*");
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new DgsCustomContextBuilder())
.addPathPatterns("/schema1/*");
registry.addInterceptor(new DgsCustomContextBuilder())
.addPathPatterns("/schema2/*");
}
};
}
}
在这个例子中,我们在DGS服务器的每个schema路径上添加了一个拦截器,来提供不同的GraphQL context。例如,/schema1路径将生成与/schema2不同的GraphQL context。这个问题现在应该已经解决了。