首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你有一份 2019 年 GitHub 年度报告待领取

因为前一段时间正好在学习 GraphQL[2],所以这次将通过 GitHub 的接口 GitHub GraphQL API v4[3] 来获取相关的用户数据。...因为要通过 GitHub GraphQL API v4 获取数据,所以先来聊聊 GraphQL。...官方对于 GraphQL 的定义是: 一种用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。...这样说很抽象,大家可能对 RESTful[6] 比较熟悉些,那么我们就拿 GitHub REST API v3[7] 与 GitHub GraphQL API v4 获取数据的方式做一个简单的对比,GraphQL...以获取用户数据为例,相关接口文档: REST API v3: Users:https://developer.github.com/v3/users/ GraphQL API v4: User:https

63430
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Go GraphQL 教程

    GraphQL 尝试解决这些问题: 查询语法和查询结果高度相似 根据需求获取字段 一个路由能获取多个请求的结果 无需接口版本管理 1 既然是一种专门用于 API 的查询语言,其必定有一些规范或者语法约束...最佳的当然是:Github 的 GraphQL API4 (https://developer.github.com/v4/) 熟络 GraphQL 语法规范 学习 GraphQL 设计规范 登入自己的账号...:访问:https://developer.github.com/v4/explorer/ 仅举几个示例: 0. viewer: User!...https://developer.github.com/v4/explorer/ https://developer.github.com/v4/query/ 上文多是讲述使用 GraphQL 进行查询操作时的语法...只有一个路由:/graphql 无需版本管理 所有的请求方法都是:POST(query 动作当然也可以使用 GET,遇到请求参数较多时,不够方便) 接口调用示例:(根据查询文档,可以根据调用者的需求

    4.4K20

    再见 REST,你好 GraphQL

    对于稍微复杂的关联查询,就显得不太合适:如果设计一个 REST 接口,一般情况下会返回关联表的全部字段,以满足更多类似的查询需求,如果设计多个细粒度接口,前端就需要查询很多次,自己拼装数据。...经过几年一线开发者的填坑,已经有一些不错的awesome-graphql(https://github.com/chentsulin/awesome-graphql)用于开发与生产,很多语言也提供了对...Github,它的 v4 版外部 API 只使用 GraphQL。...据一位在 Twitter 工作的大佬说硅谷不少一线二线的公司都在想办法转到 GraphQL 上,但是同时也说了 GraphQL 还需要时间发展,因为将它使用到生产环境需要前后端大量的重构,这无疑需要高层的推动和决心...对于复杂的查询,GraphQL 只需要一次接口请求,这样虽然网络层面的请求数被优化了,但是数据库层面的查询可一点都不少,数据库查询可能会成为性能瓶颈,还有很大的优化空间。

    69240

    你需要 GraphQL 吗?

    第一次了解到 GraphQL 是查阅 Github 文档时,偶然看到 v4 版本文档只要一个链接就可以完成所有获取数据和更新数据请求,当时看到觉得特别惊艳,能跳出 REST 请求模式,构建出全新的一套环境来实现网络请求...接口,于是 API 接口越来越多,逻辑也越来越繁杂,于是就开发了 GraphQL 来解决这个问题。...解决痛点 GraphQL 便很好地解决了当前 REST 请求模式的缺点,它是如何解决的呢?我们带着这个疑问了解一下它。 GraphQL特征 GraphQL,从字面上意思图查询。...相比于现有的接口请求更强调的功能实现,GraphQL可以提供更底层的对象以及他们引用或包含关系,从而让前端实现功能时有更大的发挥空间。 语法相关内容可以参考官方文档。...唯一端点(endpoint) GraphQL的所有请求都是通过一个链接来实现的。例如Github v4文档的端点是https://api.github.com/graphql。

    2.2K70

    推荐 GitHub 上的一套公开 API 接口,简直不要太全!

    自己找点数据然后搭建一套 API 接口吗? 可以是可以,虽然说并不是特别麻烦,但准备数据、编写逻辑、设置跨域等还是要费一些时间的。...其实,网上有很多很多免费的 API 接口可以直接拿来用的,而且各种类型的数据应有尽有,有了它们,我们就不用费尽心思自己搭建 API 了。 接下来就来给大家介绍一个库,里面收集了各种公开的数据接口。...public-apis 这个仓库就叫做 public-apis,其 GitHub 地址是 https://github.com/public-apis/public-apis。...EmojiHub 比如 EmojiHub 这个 API 提供了接口来返回一些 Emoji 表情,种类丰富多种多样,https://github.com/cheatsnake/emojihub Icon...圣经》内容:https://bible-api.com/: Free Dictionary API Free Dictionary API 提供了各种单词的查询和释义,我们可以直接用 API 获取某个单词的含义

    4.6K40

    为 Django 配备 GraphQL API

    前文再见 REST,你好 GraphQL提到,GraphQL 使得前端按需请求后端数据,前后端接口不再高度耦合,可以大大提高前后端的开发效率,从而快速进行产品迭代。...Github v4 版外部 API 只使用 GraphQL,可见 GraphQL 是一个明显的趋势,值得我们去学习和使用。今天就分享一下如何为 Django 配置 GraphQL API。...假如要开发一个菜谱应用,要支持原材料的录入和分类,前端需要灵活的展示某个原材料属于哪个分类,某个分类下有哪些原材料,并且可以传入参数查询。 请编码实现原材料和分类的灵活查询。...这就是 GraphQL 的接口调试界面,左边输入查询条件,右边返回数据。...本文分享了后端用 Django 实现 GraphQL API 的 demo,下一次分享如果在前端使用 GraphQL,让 GraphQL 在前后端都跑起来。

    87120

    追洞计划 | Gitlab CI Lint API未授权 SSRF漏洞(CVE-2021-22214)

    文章来源|MS08067 Web安全知识星球 本文作者:Taoing(Web安全攻防合伙人) GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web...GitLab_Graphql邮箱信息泄露漏洞(CVE-2020-26413) 一、漏洞描述 GitLab是美国GitLab公司的一款使用Ruby on Rails开发的、自托管的、Git(版本控制系统...GitLab中存在Graphql接口 输入构造的数据时会泄露用户邮箱和用户名 二、影响范围 GitLab 13.4 – 13.6.2 title="GitLab" 三、漏洞复现 访问 URL...Gitlab本身不允许获取账号邮箱信息,这里通过调用 Graphql 用户名查询造成了邮箱泄露漏洞查看完报告后发现漏洞利用需要有账号用户名,在不知道的情况下无法获取邮箱,在Graphql官网查看得知可以通过另一个构造的语句一次性返回所有的用户名和邮箱...发包调用了 /api/graphql 接口发送数据 完整数据包为: POST //api/graphql HTTP/1.1 Host: 10.1.2.33:8888 User-Agent: Mozilla

    3K50

    GraphQL 分享 实战篇

    查询 2.1 变量 所有声明的变量都必须是标量、枚举型或者输入对象类型。 ? image.png 默认变量 使用默认值 ? image.png ? image.png 覆盖默认值 ?...image.png 2.3 片段 提取公众的部分 上面的查询,将共同的字段:id和name,提取成fragment ?...分页 分页的原理:定义一个Edges类型,包含node和cursor字段,Node保存查询列表内容,Cursor记录分页。以下面的Github例子 5....GitHub GraphQL API 打开 https://developer.github.com/v4/explorer/ 先打开右侧的Docs浏览所有Query,发现有个名为search的query...image.png 你会发现所有已Connection结尾的类型,其结果都包含pageInfo, edges, nodes 输入下面的内容,这个查询是返回包含"graphql"关键字的前三个仓库,并显示每个仓库的前

    1.3K40

    graphql攻击思路

    graphql攻击思路 了解 GraphQL 是一种由 Facebook 开发的用于 API 查询语言和运行时的数据查询语言。它允许客户端指定所需的数据结构和内容,从而有效地获取多个资源的数据。...相比于传统的 RESTful API,GraphQL 具有更灵活的特性,客户端可以按需获取特定字段的数据,而不是在每个端点上预定义的数据结构。...,比如登录、查询之类的功能标识名称 variables就是参数,类似查询的范围{“product_area”:”reports”,”product_feature”:”details”},查询的参数和返回包的数据对应...https://target/FUZZ 可以使用Nuclei来检测GraphQL接口 模板可以使用如下: https://github.com/projectdiscovery/nuclei-templates...python3 main.py -f -d -t http://localhost:5000 或者burp搜索graphql接口 工具 graphql有一个内省模式,查询payload,.没启用返回就会报错

    31310

    GraphQL 到底有什么魔力?

    GraphQL 起源 时间退回到 2012年的一个下午, 美国加利福尼亚州, facebook 的工程师们发现他们才上架没多久的移动端应用就收到了很多差评, 用户反映app响应慢,耗电严重等,经过分析后发现..., 应用在第一次启动时, 会请求大量的后端api接口, 这其中包括用户自己的信息, 好友发布的内容, 以及其他的热点信息, 等等。...Github, Facebook 等公司都在生产环境使用了 GraphQL。...聚合能力 在 rest api 上获取多个资源时, 通常要进行多次url请求, 而使用 GraphQL 的查询功能, 一次请求就可以获取多个资源, 这正是 GraphQL 的数据聚合能力。...GraphQL for .NET 如果要在.NET 平台上使用 GraphQL, 下面是最流行的两个库, 你可以尝试使用它 •graphql-dotnet https://github.com/graphql-dotnet

    54230

    GraphQL—构建多服务架构的数据层

    GraphQL对外只提供一个接口,通过这个接口的body查询字段来灵活的获取各种数据。...它描述了连接到它的客户端应用程序可用的功能。我们可以使用任何编程语言来创建 GraphQL Schema 并围绕它构建一个接口。...的查询语句有几个特性: 按需取字段,不需要的字段可以不查询,类似于 SQL 里的 select 在类型定义的基础上,可以关联查询多个类型的数据,类似于 SQL 里的 join(但不完全一样) 可以递归的对某些字段进行理论上无限深度的查询...在此基础上构建了一套 DGS (Domain GraphQL Service) 的架构来进行治理的 Golang实践 这里就不具体描述了,可以参考如下两个链接: https://www.apollographql.com.../blog/graphql/golang/using-graphql-with-golang/ https://github.com/graphql-go/graphql/tree/master https

    31310

    我为什么要放弃RESTful,选择拥抱GraphQL

    GraphQL本质上是一种基于api的查询语言,现在大多数应用程序都需要从服务器中获取数据,这些数据存储可能存储在数据库中,API的职责是提供与应用程序需求相匹配的存储数据的接口。...REST API 的接口灵活性差、接口操作流程繁琐,GraphQL 的声明式数据获取,使得接口数据精确返回,数据查询流程简洁,照顾了客户端的灵活性。...GraphQL特点总结 声明式数据获取(可以对API进行查询): 声明式的数据查询带来了接口的精确返回,服务器会按数据查询的格式返回同样结构的 JSON 数据、真正照顾了客户端的灵活性。...---- Part 2 Schema & Type GraphQL支持的数据操作 GraphQL对数据支持的操作有: 查询(Query):获取数据的基本查询。...Hasura:一个 BaaS(后端即服务),允许你在 Postgres 上创建数据表、定义权限并使用 GraphQL 接口查询和操作。

    2.4K40
    领券