graphql icon indicating copy to clipboard operation
graphql copied to clipboard

Make the auto-filtering feature an off-by-default option?

Open jneurock opened this issue 3 years ago • 2 comments

To maintain compatibility with the design of ember-cli-mirage-graphql (the Ember-specific library that came before this), Mirage GraphQL automatically filters records by variables when auto-resolving. I think this behavior is probably surprising to most and I'm not sure if it's actually useful.

Example of the behavior being useful:

query Products($size: String) {
  products(size: $size) {
    id
    name
    size
  }
}

The query is called with a $size variable having the value "XL" and only records that match are returned from Mirage's database.


Example of the behavior being painful (forcing a query to be manually resolved):

query Products($limit: Int) {
  products(limit: $limit) {
    id
    name
  }
}

The query is called with a $limit variable having the value 10 and Mirage GraphQL tries to auto-resolve this by filtering for products having a "limit" field with a value of 10. Since "limit" isn't a field, no records are returned.


I'd like to gather some feedback on whether or not to change this behavior and make it off-by-default. I could add a handler creation option to enable this for anyone who does find this behavior useful.

jneurock avatar Apr 12 '21 20:04 jneurock

@jneurock it really makes sense I think the @miragejs/graphql should work as graphQL server works out of the box without need for any resolver or custom functions for that.

villander avatar Feb 21 '22 16:02 villander

I'm planning to make this filtering functionality opt-in for version 0.2.0

jneurock avatar May 24 '23 07:05 jneurock