Netflix DGS
文章平均质量分 85
Domain GraphQL Service
你好y
这个作者很懒,什么都没留下…
展开
-
Java Features Java 8
}我们在这里对局部变量定义使用注释。编译时注释处理器现在可以读取@NotNull注释并在字符串为空时抛出错误。原创 2022-07-22 14:10:00 · 494 阅读 · 0 评论 -
Mocking with (and without) Spring Boot
在使用@WebMvcTest注解的时候,创建的应用程序上下文不会选择程序中原有的bean,我们使用@MockBean注解模拟并将其添加到应用程序上下文中。在使用@SpringBootTest注解的时候会加载程序中所有的应用程序上下文的bean,我们这是使用@MockBean是为了创建一个模拟的bean将测试使用这个摸你的而不是真实的。...原创 2022-07-22 14:09:30 · 241 阅读 · 0 评论 -
关于使用 Jackson 解析 JSON 你需要知道的一切
今天的大多数网络都以JSON格式交换数据。Web服务器、Web和移动应用程序,甚至物联网设备都使用JSON相互通信。因此,一种简单灵活的处理JSON的方式对于任何软件在当今世界的生存都是必不可少的。...原创 2022-07-22 14:08:57 · 1247 阅读 · 0 评论 -
DGS的错误处理
将应用程序特定的异常映射到有意义的异常回客户端是很有用的。您可以通过注册DataFetcherExceptionHandler来做到这一点。确保委托给DefaultDataFetcherExceptionHandler类,这是框架的默认异常处理程序。如果你不委托给这个类,你就会失去框架的内置异常处理程序。以下是自定义异常处理程序实现的示例。}else{}}}以下数据提取器抛出MyException}}查询hello字段会产生以下响应。{"errors"[{...原创 2022-07-22 14:08:17 · 1297 阅读 · 0 评论 -
DGS之联邦(Federation)
ShowsDGS定义了带有id、title和releaseYear字段的Show类型。请注意,id字段被标记为关键。这个例子有一个键,但你也可以有多个键@key(fields“fieldAfieldB”这表明网关的id字段将被用于识别ShowsDGS中的相应的Show,并且必须指定联合类型。String)"id"){idIDtitleInt}...原创 2022-07-22 14:07:47 · 888 阅读 · 0 评论 -
DGS之代码生成
类型是作为packageName.types指定的包的一部分,其中你指定packageName的值作为build.gradle文件中的配置。ANTLR通常是向后兼容的,但不是向前兼容的。建议在你的项目中创建一个单独的模块,包含外部服务的模式和codegen配置,只生成一个查询API。在与另一个GraphQL服务交互时,同样类型的API也很有用,你的代码是该服务的客户端。你可以将模式的某些部分排除在代码生成之外,方法是将它们放在一个不同的模式目录中,该目录不作为插件的schemaPaths的一部分被指定。..原创 2022-07-22 14:07:00 · 409 阅读 · 0 评论 -
DGS之N+1选择问题
假设你有一个汽车对象的集合(数据库行),而每个汽车都有一个车轮对象的集合(也是行)。换句话说,汽车→车轮是一个1对多的关系。现在,假设你需要遍历所有的汽车,并为每个汽车打印出一个车轮的列表。这就把到数据库的往返次数从N+1减少到2。汽车进行第二次查询(总共2个查询)。现在打印出来是最佳的,不需要索引或辅助存储。换句话说,你有一个关于汽车的选择,然后有N个额外的选择,其中N是汽车的总数。车轮(1个选择),如果需要比CarId更多的详细信息,请对。另外,我们也可以得到所有的轮子,并在内存中进行查找。...原创 2022-07-21 17:14:44 · 164 阅读 · 0 评论 -
DGS之文件上传
在GraphQL中,你将文件上传操作建模为从客户端到DGS的GraphQL变异请求。以下章节描述了如何使用MultipartPOST请求实现文件的上传和下载。关于文件上传的更多内容和最佳实践,请看Apollo博客中KhalilStemmler的Apollo服务器文件上传最佳实践。...原创 2022-07-21 17:13:59 · 683 阅读 · 0 评论 -
DGS之Mutations
DGS框架支持突变,其结构与数据提取器相同,使用@DgsData注解。下面是一个突变的简单例子。注意,上面的代码通过,就像数据提取器为其参数所做的那样。原创 2022-07-21 17:13:27 · 281 阅读 · 0 评论 -
DGS初识
在这个例子中,源是表演对象,你可以用它来获取表演的标识符,以便在演员的查询中使用。请注意,showsdatafetcher返回的是一个Show的列表,而actorsdatafetcher获取的是一个单一节目的演员。如果你使用的是代码生成,你可以使用生成的常量来代替。你也可以将你自己的数据添加到上下文中,以便在数据获取器中使用。@InputArgument注解将使用方法参数的名称与查询中发送的输入参数的名称相匹配。这意味着,当字段在GraphQL模式中是可选的时候,你必须确保在数据类中使字段是可选的。...原创 2022-07-21 17:12:33 · 1298 阅读 · 0 评论