nautilus / gateway

A federated api gateway for graphql services. https://gateway.nautilus.dev/
MIT License
397 stars 49 forks source link

Aliases not recognized when federating list responses #181

Closed sGy1980de closed 1 year ago

sGy1980de commented 1 year ago

Federating list responses does not work as expected.

To illustrate the issue here an example from the tests: TestExecutor_insertIntoListFragmentSpreads GraphQL query

{
  # entry point photos is aliased here
  gallery: photos{                       # <--Query.services @ serviceA, list
    ...photosFragment
  }
}
fragment photosFragment on Photo {
  createdBy {
    firstName                            # <-- User.firstName @ serviceA
    address                              # <-- User.address @ serviceB
  }
}

Expected result:

{
  "gallery": [
    {
      "createdBy": {
        "address": "address-1",
        "firstName": "John",
        "id": "1"
      }
    },
    {
      "createdBy": {
        "address": "address-2",
        "firstName": "Jane",
        "id": "2"
      }
    }
  ]
}

Current result:

{
  "gallery": [
    {
      "createdBy": {
        "firstName": "John",
        "id": "1"
      }
    },
    {
      "createdBy": {
        "firstName": "Jane",
        "id": "2"
      }
    }
  ],
  "photos": [
    {
      "createdBy": {
        "address": "address-1"
      }
    },
    {
      "createdBy": {
        "address": "address-2"
      }
    }
  ]
}