Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Automatically encode and decode input arguments?

未关闭
#236 5 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
停滞
技术栈
fsharp, graphql
领域
api, backend

调研方向

在评估类型化参数方案之前,先审查 issue 中所示的当前 Define.Input 和 ResolveFieldContext.TryArg 用法。此项工作需要定义一种对类似 CreateUserArgs 的记录进行编码和解码的方式,并通过使用所提议的机制访问 fname 和 lname 来展示其完整性。

由索引模型根据 Issue 内容生成。

描述

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      
主要语言
F#
星标
406
派生
74
平均合并
1 天 8 小时
30 天内合并 PR
14

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

fsprojects/FSharp.Data.GraphQL 的其他 Issue

查看 fsprojects/FSharp.Data.GraphQL 的全部 Issue

相似的 Issue

更多 Backend & API Design Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。