ardatan / ardatan/graphql-mesh

Argument standardization

Open
#2,156 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.