如何编写 GraphQL 查询

2024-04-09

我有一个有效的网络 graphql 查询:

{
  me{
    ... on Student{

      profile {
        fullName
        emailId
        mobileNumber
        civilId
        address
        city
        state
        country
        zipCode
        userProfilePic
        userCategory
        createdAt
        updatedAt
      }

    }

  }
}

它返回特定学生的个人资料详细信息。我使用突变进行记录并获取用户的令牌。

我想创建一个 graphql 文件(例如 StudentProfile.graphql),以便使用 Apollo 客户端发出获取请求(类似于 http.get)。

我发出此请求是为了获取 graphql 查询。

func fetchStudentProfileDetails(){

        let tokenString = "Bearer " +  "....my token ..."

        print(tokenString)


        let newApollo: ApolloClient = {
            let configuration = URLSessionConfiguration.default
            // Add additional headers as needed
            configuration.httpAdditionalHeaders = ["Authorization": tokenString]

            let url = URL(string: "http://52.88.217.19/graphql")!

            return ApolloClient(networkTransport: HTTPNetworkTransport(url: url, configuration: configuration))
        }()



        newApollo.fetch(query: StudentProfileQuery()) { (result, error) in

            self.profileDetailsTextView.text =  "Success"


            if let error = error {
                NSLog("Error while fetching query: \(error.localizedDescription)");
                self.profileDetailsTextView.text =  error.localizedDescription
            }
            guard let result = result else {
                NSLog("No query result");
                self.profileDetailsTextView.text = "No query result"
                return
            }

            if let errors = result.errors {
                NSLog("Errors in query result: \(errors)")

                self.profileDetailsTextView.text =  String(describing: errors)

            }

            guard let data = result.data else {

                NSLog("No query result data");

                return
            }
        }

    }

如何将以下 Web 查询转换为 .graphql 文件中的查询?


因此,您可以使用简单的 NSUrlSession 调用在 Graphql 服务器中创建新文档

let headers = ["content-type": "application/json"]
let parameters = ["query": "mutation { createProfile(fullName: \"test name\" emailId: \"[email protected] /cdn-cgi/l/email-protection\") { id  } }"] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://<url graphql>")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何编写 GraphQL 查询 的相关文章

随机推荐

  • 使用 ctypes/cffi 解决循环共享对象依赖关系

    我想用cffi 甚至ctypes如果我必须 从 Linux 上的 Python 3 访问 C ABI 该API由许多实现 so文件 我们称它们为libA so libB so and libC so 这样libA包含主要导出函数 其他库提供
  • 容器化的 Spring 应用程序看不到本地文件?

    我有一个 spring boot 应用程序和一个 postgresql 数据库 我在容器中运行它们docker compose 问题是 正常的通话 例如 localhost 8080 api users返回正常值并正常运行 但是 当我尝试访
  • system.data.oledb.oledbException(0x80004005):找不到文件

    有人可以帮我解决这个错误吗 我想不通 我在 Windows XP 上遇到此错误 但在 Windows 7 上没有 我所做的是附加一张照片并将其保存到数据库 MS Access 作为我的数据库 照片出现在图片框上 但之后一切都变得一团糟 我正
  • R:ggplot背景渐变着色

    我想生成具有渐变颜色的 ggplot 填充绘图面板及其背景 如此处所示 正如您所看到的 渐变背景颜色包含绘图面板及其背景 目前 我只知道所需解决方案的 近似值 library ggplot2 library grid library gri
  • 实施 IEnlistmentNotification 时我应该在哪里执行操作?

    我正在尝试通过实现来创建自定义 资源管理器 I入伍通知 http msdn microsoft com en us library system transactions ienlistmentnotification 28v vs 110
  • Datagrid 与 Gridview [重复]

    这个问题在这里已经有答案了 可能的重复 ASP NET 中 DataGrid 和 GridView 之间的区别 https stackoverflow com questions 4230 the difference between a
  • php中按字母顺序排列的列表组[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个成员表 其中存储有关成员的所有详细信息 包括其姓名 电子邮件 电话等 我希望该名称按字母顺序显示 如示例所示 A Alan Alex
  • 如何更改 Eclipse 模板中使用的 ${user} 变量的值

    我希望 Eclipse 使用从帐户信息中获取的用户真实姓名 而不是硬编码默认的 author 模板 在 Linux 中 但也欢迎 Windows 解决方案 将其输入 Eclipse 配置中的某个位置也是可以接受的 可惜我找不到正确的位置 看
  • Slick 3 从查询中返回自定义案例类

    目前我有这样的事情 val q for department lt departments if department id x employee lt employees if employee departmentId departme
  • 如何防止PayPal重复付款?

    我有一个简单的 立即付款 按钮 通过按钮创建者创建的代码 并添加了一个 自定义 隐藏字段来识别它 我想知道是否可以添加一些额外的隐藏字段来告诉 PayPal 此交易不应进行两次
  • 正则表达式匹配/分组字符串中的重复字符

    我需要一个正则表达式来匹配字符串中的字符组 这是一个示例字符串 qwwwwwwwwweeeeerrtyyyyyqqqqwEErTTT 它应该匹配 比赛组 结果 1 q 2 wwwwwwwww 3 哎呀 4 rr 5 t 6 yyyyy 7
  • 如何在 SP 元数据中配置自定义属性

    我开始知道 在任何 SSO 解决方案中 如果 SP 需要任何其他属性 它可以使用以下方法在其元数据中发布它们 属性消费服务争论 现在可以添加所需的属性 如下所示
  • 如何在 VSTS 构建服务器上为 .Net Core 2 项目编译 Typescript 文件

    我一直在尝试在 VSTS 上的 CI 构建过程中将 TypeScript 文件编译为 JavaScript 文件 一旦生成了 JavaScript 文件 我的 gulp 文件进程就可以将它们处理到 wwwroot 文件夹 该项目在 Visu
  • 在联合上分配泛型类型

    TS 中有没有办法通过联合 分布 泛型类型 type Container a value A type Containers a
  • 使用特定主题标签时检索 Twitter 图片或视频

    我正在寻找为学校活动创建一个页面 基本上我想显示带有特定主题标签的推文的所有图片 如果可能的话还可以显示任何 youtube 或 vimeo 视频 我一直在查看 twitter API 但是我找不到起点 有人知道如何解决这个问题吗 我将不胜
  • 可以使用正则表达式来匹配嵌套模式吗? [复制]

    这个问题在这里已经有答案了 是否可以编写一个正则表达式来匹配出现次数未知的嵌套模式 例如 当外大括号内嵌套未知数量的左大括号时 正则表达式是否可以匹配左大括号和右大括号 例如 public MyMethod if test More Mor
  • ColdFusion UI 标签到 jQuery 的转换

    我正在尝试将一些具有各种 ColdFusion UI 标签的代码转换为 jQuery 我必须制定一个迁移计划 目前这就是我所拥有的 Tag Replacement CFApplet CFCalendar http jqueryui com
  • 选择单个列值并将其存储在变量 oracle sql 中

    我想获取特定列值 a id 并将其存储到变量 v id 中 然后使用该值传递到存储过程中 DECLARE v id a id TYPE BEGIN SELECT id into v id from a where a name test a
  • Java中有没有办法预加1以上?

    在 Java 中 您可以通过以下方式对整数 i 进行后增量 j i 2 我想通过预增量做同样的事情 e g j 2 i This will not work 只需将增量语句放在括号中即可 例如 以下将输出pre 2 int i 0 Syst
  • 如何编写 GraphQL 查询

    我有一个有效的网络 graphql 查询 me on Student profile fullName emailId mobileNumber civilId address city state country zipCode user