Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Argument standardization #2156

Open
ntziolis opened this issue May 16, 2021 · 0 comments
Open

Argument standardization #2156

ntziolis opened this issue May 16, 2021 · 0 comments

Comments

@ntziolis
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant