Automatically encode and decode input arguments?

Aperta
#236 5 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
fsharp, graphql
Ambito
api, backend

Direzione di ricerca

Esamina l’uso attuale di Define.Input e ResolveFieldContext.TryArg mostrato nell’issue prima di valutare un approccio con argomenti tipizzati. Il lavoro richiederebbe un modo definito per codificare e decodificare un record come CreateUserArgs, dimostrando il completamento tramite l’accesso a fname e lname attraverso il meccanismo proposto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Looking quickly at how to accept incoming params, is there a current way that allows defining something more global. Currently that's how it's done:

let createUserArgs: InputFieldDef list = 
    [ Define.Input("fname", String); Define.Input("lname", String); ]

let createUser(ctx: ResolveFieldContext) =
        let name = ctx.TryArg("fname")
        match name with
                | Some n ->
                    // ok...
                | None ->
                    // failhere...

Now I was wondering if there is another way say we could have something like this which could potentially automatically encode the input params and decode them as well ? Something like this perhaps:

type CreateUserArgs = {
    fname: string
    lname: string
}


let createUser(ctx: ResolveFieldContext) =
        let allArgsInput = ctx.getAllArgs<CreateUserArgs >()
        // At this point the system would know about allArgsInput.fname and allArgsInput.lname      
Lingua principale
F#
Stelle
406
Fork
74
Merge medio
1g 8h
PR unite (30g)
14

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di fsprojects/FSharp.Data.GraphQL

Tutte le issue di fsprojects/FSharp.Data.GraphQL

Issue simili

Altre issue su Backend & API Design

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.