我正在使用 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)
这既不好也不高效。处理这个问题的最佳方法是什么?
我正在学习 Scheme,来自 Haskell 的背景,但我遇到了一个非常令人惊讶的问题——scheme 似乎没有自定义数据类型???(即对象、结构等)。我知道一些实现有自己的自定义宏来实现结构,但 R6RS 本身似乎没有提供任何这样的功能。
鉴于此,我有两个问题:
例如,任何试图返回多项数据的函数都需要某种封装数据的方式。是使用哈希映射的最佳实践吗?
(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