我们正在考虑在REST服务之上使用GraphQL(使用 FHIR医疗记录标准)。
我知道GraphQL的模式是聚合结果 多个独立解析器进入最终结果。但是一个 符合FHIR的REST服务器提供已聚合的批处理端点 数据。有时我们需要单点数据 - 患者的年龄或地址 仅举例来说。但很多时候,我们需要大部分或全部数据 关于特定患者的信息。
因此,虽然我们可以从单个REST调用中获取那种全体数据 将多个联想编织在一起,似乎我们需要 分段获取它以GraphQL的方式做事。
优化可能是急切加载和记忆所有相关的 任何解析器随时要求任何数据的数据。在某些情况下,这将是 适当而在其他情况下,这将是严重的矫枉过正。但 辨别何时它是否过度杀戮似乎是不可能的 解析器应该是独立的。此外,撤消似乎是血腥的 然后重做REST服务已经完美的东西 能够有效地工作。
所以 -
答案 0 :(得分:1)
另一种方法是在解析器内解析特定查询的请求。传递给解析程序的第四个参数是一个对象,其中包含有关请求的大量信息,包括选择集。然后,您可以根据请求的字段等待批量请求到您的API端点,最后返回REST调用的结果,让您的低级解析器处理将其解析为请求数据的形状。
解析信息对象可以是PITA,尽管有libraries out there for that,至少在Node生态系统中。