gpt4 book ai didi

java - 如何从 Java Google Cloud Endpoint 处理程序访问 API Explorer 的 "fields"字段?

转载 作者:行者123 更新时间:2023-11-29 05:29:10 25 4
gpt4 key购买 nike

我想允许我的端点的客户端屏蔽我的网络服务将返回的字段。我注意到 Google APIs Explorer 中有一个“fields”字段,看起来它就是用于此功能的。但是,我找不到任何关于如何从我的 Java 端点处理程序方法访问“字段”以执行客户端的愿望并返回减少的数据集的文档。这是受支持的功能吗?如果是这样,我该如何利用它?

最佳答案

由于没有找到关于此 fields 参数的文档,所以我必须从我自己的实验中得出结论。

据我所知,Google Cloud Endpoints 调度程序会自动屏蔽该字段。从您的 API 方法返回的对象由 Jackson JSON 解析器处理,该解析器仅返回 fields 参数中给定的字段。您对象的字段也应该出现在字段编辑器中。

下图是该字段编辑器在 Drive API 中的显示方式。您自己的 Endpoints API 应该生成同样的字段编辑器,而 Jackson 应该只解析您选择的字段。

注意事项:

  • Appengine devserver (localhost) 也显示该字段编辑器,但在解析为 JSON 时不知何故不考虑选定的字段。
  • 在某些情况下,字段编辑器允许您选择嵌套对象中的字段,在某些情况下则不允许。我还没有发现这种行为背后的逻辑。
  • 如果使用具有延迟获取字段的 Hibernate(或其他类似框架),您可能会遇到“无法初始化代理” - 错误。在这些情况下,您必须在 Endpoints 中手动打开 Hibernate session 。我找到的一种解决方案是继承 com.google.api.server.spi.SystemServiceServlet 类并在 doPost 方法中打开 session 。该方法处理发送到端点的所有请求。您还应该使用 @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) 注释您的实体 - 注释,因为 Jackson 将无法尝试解析这些字段。

Drive API, field editor

关于java - 如何从 Java Google Cloud Endpoint 处理程序访问 API Explorer 的 "fields"字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21715070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com