GraphQL GraphQL是一个开源的面向API而创造出来的数据查询操作语言以及相应的运行环境 于年仍处于Facebook内部开发阶段直到年才公开发布 年月日Facebook将GraphQL项目转移到新成立的GraphQL基金会隶属于非营利性的Linux基金会 GraphQL相较于REST以及其他web service架构提供了一种更加高效强大和灵活的开发web APIs的方式它通过由客户端根据所需定义数据结构同时由服务端负责返回相同数据结构的对应数据的方式避免了服务端大量冗余数据的返回但与此同时也意味着这种方式不能有效利用起查询结果的web缓存GraphQL这种查询语言所带来的灵活性和丰富性的同时也增加了复杂性导致简单的APIs有可能并不适合这种方式 GraphQL支持数据读取写入操作和数据变更订阅实时更新 主要的GraphQL客户端有Apollo Client 和 Relay GraphQL的服务端在多个语言都有实现包括Haskell JavaScript Python Ruby Java C Scala Go Elixir Erlang PHP R和 Clojure 年月日GraphQL的部分模式定义语言SDL规范制定完成