ardatan / ardatan/graphql-mesh
Argument standardization
- Dominant language
- TypeScript
- Stars
- 3.5k
- Forks
- 363
- Avg merge
- 6h 10m
- Merged PRs (30d)
- 19
Description
When dealing with downstream sources (especially legacy and/or third party) they are likely to implement common features very differently, some examples:
- List query pagination
- pagination type (offset vs record id vs cursor)
- name of arguments skip / offset etc.
- Single object query
- individual args per key vs one arg with multiple properties
- names of id args
- Mutations (little more complex and might be out of scope)
- when updating / inserting individual args vs one object
When building data driven apps it would be extremely beneficial when all sources could be accessed via the same API. This would significantly reduce complexity on the client. As well as enable the creation of reusable data components.
**Describe the solution you'd like**
- Assuming a standardized args format is defined by mesh for different operation types (list get single etc)
- Create a transform that
- Changes the exposed schema for a downstream resolver and translates the incoming operation structure to the internally required one
- Can be configured (on a per resolver basis with defaults from source and root) how to convert the standardized args format to the one required by the downstream source)
As an additional step it might also be possible to configure the standardized args format that is exposed by mesh.
**Describe alternatives you've considered**
We understand that this is possible today by manually creating custom transforms. However we believe this is something that can be standardized and provide enormous value to the mesh community as well as significantly expand the use cases for mesh especially in an enterprise environment.
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names no files, tests, or entry points. Start by reviewing the existing custom-transform approach and how resolver configuration is represented. Done means a defined standardized argument format, configurable per-resolver conversion to downstream arguments, and coverage for the supported operation types.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql, typescript
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100