- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在学习 GraphQL,在我看到的每个示例中,signup
/login
和 me
调用都在 mutation
和 query
类型。这是为什么?示例:
type Query {
me: User
}
type Mutation {
login(email: String!, password: String!): String
}
这不应该是 User
类型吗?既然是用户相关的事情?
如果这是一个基于意见的问题,我深表歉意 - 如果是这样的话,我会关闭这个问题。
最佳答案
来自spec :
There are three types of operations that GraphQL models:
query – a read‐only fetch.
mutation – a write followed by a fetch.
subscription – a long‐lived request that fetches data in response to source events.
每个操作都与特定类型相关联,尽管突变和订阅类型都是可选的。所以模式可以这样定义:
schema {
query: Query
}
这里,Query
指的是一个名为Query
的类型。按照惯例,这三种类型被命名为 Query
、Mutation
和 Subscription
—— 但它们可以命名为任何其他名称,这并不重要.但是,它们必须是对象类型并且必须至少包含一个字段。
这些操作类型充当 GraphQL 操作的“根”,实际上是数据图的入口点。没有其他类型在根级别公开,即使它们存在于您的架构中。
me
或 viewer
字段通常在 Query
类型上公开,以允许用户获取当前登录的用户。假设我们已经定义了一个 User
类型,如果我们将一个 me
字段添加到我们的 Query
类型,并将该字段的类型设置为 User
,我们允许端点的消费者编写如下查询:
query {
me {
# some set of User fields like id, firstName, etc.
}
}
如果我们将 me
字段放在 User
类型上,a) 我们不一定有办法请求该字段,因为它不会在root,和 b) 我们将在返回 User
的任何地方公开一个 me
字段(例如,一个 friends
字段返回 Users
) 这没有多大意义。
相同的逻辑适用于 login
之类的突变——我们希望它们位于操作的根部,因此我们将它们放在 Mutation
类型中。另一方面,login
应该是突变还是查询,is subjective and depends on your particular use case .
如果您习惯于使用 REST,通常会看到以它们所操作的数据源为前缀的操作,例如:
POST /articles/{id}/bookmark
我们可能倾向于通过我们的突变来强制执行类似的结构,从而导致如下请求:
mutation {
article {
bookmark
}
}
然而,这是完全没有必要的,而且实际上打破了惯例并且使实现更加复杂。这样做就足够了:
mutation {
bookmarkArticle
}
有关这一点的更多信息,请参见 here .
关于javascript - 为什么 signup 和 me 总是在 mutation 和 query 类型中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54755399/
我在 Django 中收到页面未找到 404 错误。尽管我已在主应用和此应用中正确映射了 URL。 urlpatterns = [ path('',views.mainpage,name='m
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
select date_format(payout.date, '%m/%d/%Y') as Date, (select commission.PAYOUTID from commission
我是 Laravel 新手。我正在学习如何创建用户注册页面。一切正常,但我陷入了一个简单的问题。 ErrorException in UrlGenerator.php line 304: Route
我正在通过注册和登录在我的应用程序中实现 Fire-Base 身份验证,但是我遇到了一个问题,每次我填写表格并单击“注册”按钮时,Fire-Base 都会返回一个错误,即使帐户已成功创建。我的 Sig
我想通过用户输入存储用户名,但收到以下错误: `AttributeError` at /sign/ `'signup' object has no attribute 'get'` 这是我尝试运行的相
我尝试使用 Crispy-form 增强我所有授权的注册表单,但它不起作用:) 我修改forms.py中的allauth表单,隐藏标签,添加按钮 我目前的问题是 forms.py 中的“self.he
我正在为网站使用 Firebase 身份验证并选择密码身份验证和 Google 登录。当我运行它时,我得到以下信息: {"error":{"code":403,"message":"Requests
是否有关于使用github验证用户身份的文档?最好在PHP中。 像这里的按钮:http://coderwall.com/ 最佳答案 是的,它记录在GitHub API OAuth section的do
这是我的内容包装器,它将显示 SignUp 组件或 SignIn 组件。 const Content = (props) => { return (
我想在用户注册过程失败后重定向到“/signup”页面。你是怎么做到的? 每次注册失败,它都重定向到“/users”,这不是我想要的,我希望它重定向到注册页面。 TIA 最佳答案 您必须在初始化程序中
我听说 Mixpanel 中的“$signup”事件有些特别。它具体有什么作用? 我所能找到的都是非常模糊的陈述,例如“您的报告的性能会略有改善”和“$signup 对于保留分析特别有用。” 最佳答案
我将 Parse.com 用于我的应用程序数据库和我的注册 View ,我正在尝试减少代码中的行数。 user.set("username",$scope.user.email); user.set(
Ajax 新手,开始使用 Javascript 和 jQuery。 我有一个以提交按钮结尾的表单,JavaScript 通过一组 function signup(){ 将验证字段和其他要求。到这里为止
下面是代码,希望有人能帮我解决使用未解析的标识符“SignUp”问题: @IBOutlet var UsernameTextField: UITextField! @IBOutlet var Pass
我想向我的解析 SignUp 函数添加一个额外的属性。我的代码就像 signUp: function(e) { var self = this; var username = this.$("
我刚刚在 ubuntu 14.04 服务器上使用 apache 部署了我的 django 站点。正在访问该站点。但是当我以用户身份注册到其中时,它会创建用户但无法创建与我的用户处于一对一关系的用户配置
许多较新的网站都有 neat-o 注册表单。我做 c++/java 开发,正在进入 web 开发,css 对我来说还是有点神秘。 如果我想创建一个像 twitter.com/signup 这样的页面,
我正在使用 React、node.js 和 AWS cognito 创建一个注册页面。处理注册事件时,我收到错误 'aws_amplify__WEBPACK_IMPORTED_MODULE_2___d
我想知道是否有人知道是否可以在 django-allauth 中完全禁用表单登录/注册. 在我的业务模型中,用户只能使用 Facebook 登录/注册,但是每当我使用 @login_required
我是一名优秀的程序员,十分优秀!