smallrye / smallrye-graphql

Implementation for MicroProfile GraphQL
Apache License 2.0
160 stars 92 forks source link

Is there a equivalent of __resolveReference for subgraph federation ? #2214

Open bfiorito opened 1 month ago

bfiorito commented 1 month ago

Hi guys,

The plot

We are facing an issue when trying to get an reference entity from a subgraph.

Context

We have 2 subgraphs, one from an apollo subgraph backend : review-service.graphql

type User @key(fields: "id") {
  id: ID!
  applications: [String!]!
  locationId: ID
  location: Location  <-- from the other subgraph entity
}

another from a smallrye-graphql backend : location-service.graphql

type Location @key(fields: "id") {
  locationRef: String
  description: String
  id: ID!
  name: String!
}

Both are federated into an supergraph with rover. Each Review has a locationId.

The problem

With apollo federation, a method called __resolveReference can be defined to tell the router how it can get the Location object using it's ID, see : https://www.apollographql.com/docs/apollo-server/using-federation/api/apollo-subgraph#__resolvereference

In smallrye-graphql, we sadly do not find the equivalent :/

Could you provide us a way to implement the same think in smallrye please ? Or do you have any other options ?

Thanks in advance

RoMiRoSSaN commented 4 weeks ago

@bfiorito Hi. Please check it https://smallrye.io/smallrye-graphql/2.11.0/federation If it is what you want, it will be in quarkus 3.16