小编fun*_*ial的帖子

GraphQL 忽略不必要的字段

我正在使用 graphql-js 开发一个 Node 项目。我对 REST 上的 GraphQL 非常满意,除了一个问题 - 默认情况下,GraphQL 会拒绝包含未知/不需要的字段的输入。这在使用 apollo-client 时尤其烦人,它将 __typename 添加到每个请求的对象。还有一个问题,改变GraphQL此功能,但我想知道什么是从这里去的最佳途径。现在我必须在发送任何东西之前手动清理我的对象。

所以我在大多数网络请求之前这样做:

delete person.__typename
for(const tag in person.tags) {
   delete tag.__typename
}
Run Code Online (Sandbox Code Playgroud)

这既不好也不高效。处理这个问题的最佳方法是什么?

javascript node.js graphql

5
推荐指数
0
解决办法
708
查看次数

Scheme中的数据结构

我正在学习 Scheme,来自 Haskell 的背景,但我遇到了一个非常令人惊讶的问题——scheme 似乎没有自定义数据类型???(即对象、结构等)。我知道一些实现有自己的自定义宏来实现结构,但 R6RS 本身似乎没有提供任何这样的功能。

鉴于此,我有两个问题:

  1. 这样对吗?我是否缺少允许创建自定义数据类型的功能?
  2. 如果不是,方案程序员如何构建程序?

例如,任何试图返回多项数据的函数都需要某种封装数据的方式。是使用哈希映射的最佳实践吗?

(define (read-user-input)
    (display "1. Add todo\n2. Delete todo\n3. Modify todo\n")
    (let ((cmd-num (read)))
    (if (equal? cmd-num "1") '(("command-number" . cmd-num) ("todo-text" . (read-todo)))
    (if (equal? cmd-num "2") '(("command-number" . cmd-num) ("todo-id"   . (read-todo-id)))
                             '(("command-number" . cmd-num) ("todo-id"   . (read-todo-id)))))))
Run Code Online (Sandbox Code Playgroud)

lisp scheme functional-programming data-structures chicken-scheme

3
推荐指数
1
解决办法
2523
查看次数