Netflix 开源 DGS,用于 Spring Boot 的 GraphQL 框架

开源
Netflix 已开放其 Domain Graph Service(DGS)框架的源代码 ,该框架是为独立和联合 GraphQL 服务开发的内容流服务,用于简化 GraphQL 的实现。

Netflix 已开放其 Domain Graph Service(DGS)框架的源代码 ,该框架是为独立和联合 GraphQL 服务开发的内容流服务,用于简化 GraphQL 的实现。

Netflix 的软件工程师 Paul Bakker 以及 Kavitha Srinivasan 在博客中写道:“通过开源该项目,我们希望为 Java 和 GraphQL 社区做出贡献,并向使用该框架的所有人学习并与之合作,以使 DGS 在将来变得更好。”

GraphQL 最初由 Facebook 内部开发,是一种用于 API 的开源查询语言,是一种服务器端运行时用于对现有数据执行查询。正如 GraphQL Foundation 解释的那样,该语言提供了基于 REST 体系结构的替代方案,目的是提高开发人员的生产力并最大程度地减少传输的数据量。”

GraphQL 被包括 Credit Karma、GitHub、Intuit、PayPal 和《纽约时报》等在内的许多组织用于生产环境中。Netflix 也将其用作数据查询和操作语言,将数据提取到系统中以支持其内容工程部门。

为什么需要 DGS 框架

Netflix 在 2019 年开始实施联合 GraphQL 架构,向新的体系结构过渡意味 Netflix 公司的许多后端团队需要在其 Java 生态系统中采用 GraphQL。Netflix 已经为后端开发标准化了 Spring Boot 快速应用程序开发框架。由于该公司的框架是在 Spring Boot 之上创建的,为了使这种新的联合架构获得成功,Netflix 就需要在 Spring Boot 中为 GraphQL 带来出色的开发体验。

DGS 框架的主要功能包括:

  • 基于注释的 Spring Boot 编程模型
  • 用于将查询测试编写为单元测试的测试框架
  • Gradle 代码生成插件,可从 GraphQL 模式创建 Java/Kotlin 类型
  • 与 GraphQL Federation 轻松集成
  • 与 Spring Security 集成
  • GraphQL 订阅(WebSocket 和 SSE)
  • 文件上传
  • 错误处理
  • 基于 Java 的 GraphQL 客户端

在 Spring Boot 之上创建的 DGS 框架,它利用了 graphql-java 库,DGS 框架最初仅在 Netflix 内部使用,着重于与 Netflix 生态系统的集成以进行跟踪、日志记录和指标等。但是,将框架适当地模块化也是他们重中之重的任务。显然,Netflix 构建的大部分框架实际上并不是特定于 Netflix 本身的。该框架基本上只是构建独立和联合 GraphQL 服务的一种简便方法。

该框架有很多 Kotlin 代码,我可以用 Java 使用它吗?

尽管 DGS 框架主要是用 Kotlin 编写的,但该框架主要设计用于 Java,并且大多数框架的使用者都使用 Java。当然,如果使用的是 Kotlin,效果也很好。

Netflix 是否在该框架的分支上运行?

不,Netflix正在使用相同的 OSS 组件!Netflix 为分布式跟踪、日志记录、指标等插入了一些额外的模块,并且我们有文档说明如何为自己的基础架构实现类似集成。

准备好用于生产环境中了吗?

是的!在开源之前,Netflix 已经在不同的部门中使用了超过一年半的时间,甚至包括一些大规模项目。我们已经发布了许多发行版,其中增加了新功能、修复了错误等,并且它已经成为一个非常稳定的平台。

本文转自OSCHINA

本文标题:Netflix 开源 DGS,用于 Spring Boot 的 GraphQL 框架

本文地址:https://www.oschina.net/news/130340/open-sourcing-the-netflix-domain-graph-service-framework

 

责任编辑:未丽燕 来源: 开源中国
相关推荐

2021-12-02 16:20:17

开源微服务框架

2021-07-28 14:14:09

JavaScript开源框架

2021-09-13 09:50:28

MicroEJ开源JavaScript框

2020-05-21 18:52:06

PHP框架CodeigniterWeb开发

2023-12-30 08:12:42

2011-05-18 09:47:39

spring

2019-08-15 10:56:10

WebServletSpring mvc

2021-07-09 14:31:55

IBM开源框架混合云

2013-07-23 09:42:21

IBMNetflix

2013-01-05 09:43:25

亚马逊AWS公有云服务Netflix

2019-09-06 08:29:33

Netflix架构推荐系统

2024-01-22 08:46:37

MyBatis数据脱敏Spring

2019-02-28 10:18:44

GitHub 技术开源

2017-03-13 08:58:46

Spring Clou概览架构

2013-12-11 09:47:35

NetflixAWSIaaS

2024-07-05 11:22:39

2021-05-06 10:52:09

Java Spring Bo框架

2016-08-05 15:04:33

javascripthtmljs

2021-03-08 10:21:22

开源技术 框架

2019-03-05 11:06:08

学术出版开源工具
点赞
收藏

51CTO技术栈公众号