如何在 Android 中发送带有片段的 graphql 查询

Posted

技术标签:

【中文标题】如何在 Android 中发送带有片段的 graphql 查询【英文标题】:How to send graphql query with fragments in Android 【发布时间】:2016-05-04 19:04:00 【问题描述】:

我是 graphql 的新手,我需要帮助来为我的 android 应用程序发送带有片段的 graphql 查询。 以下是网络接受的查询格式。

query
  user(ident:"JohnDoe")
    myStory
      description,
    placements(first:3)
      edges
        node
          mediaItemType
          mediaItem 
            ...VideoFragment
            ...PhotoFragment
          
        
      
    
    
  

fragment VideoFragment on Video 
    videohtml

fragment PhotoFragment on Photo 
    url(size:10)

任何帮助表示赞赏!

【问题讨论】:

如何将查询结果转换为 Java 类? 我得到的结果是 JSON 格式,我正在使用 Retrofit 库来解析 JSON 结果。 所以你没有利用 GraphQL 服务器的模式,对,但我假设你正在使用 Retrofit 模型类? 是的,你是对的@mcwise,我使用了 Retrofit 模型类,因为当时我并不精通 GraphQL 架构。 【参考方案1】:

这可能取决于 GraphQL 的服务器实现。 GraphQL 没有定义媒介,这使得这个问题有点宽泛。由于express-graphql 很常见,我猜你可能正在使用它。如果这是真的,您可以使用documentation for that project 中列出的更多详细信息通过 HTTP 查询它。如果情况并非如此,则需要进行更多挖掘。

【讨论】:

我通过在 strings.xml 中添加它来使其工作,如下所示。确保没有多余的空格。 查询 user(ident:"JohnDoe") myStory description, placements(first:3) edges node mediaItemType mediaItem ...VideoFragment . ..PhotoFragment 片段 VideoFragment on Video videoHTML Fragment PhotoFragment on Photo url(size:10) 【参考方案2】:

我通过在 strings.xml 中添加它来使其工作,如下所示。确保没有多余的空格。

<string name="graphiql_detail_search">

  user(ident: "JohnDoe") 
    myStory 
      description
      placements(first: 3) 
        edges 
          node 
            mediaItemType
            mediaItem 
              ...VideoFragment
              ...PhotoFragment
            
          
        
      
    
  


fragment VideoFragment on Video 
  videoHTML


fragment PhotoFragment on Photo 
  url(size: 10)

【讨论】:

你也考虑过使用它吗? github.com/andimarek/graphql-java @John Shelley,graphql-java 是否有助于构建查询,然后我们必须通过 OkHttp 发送它? @NguyenMinhBinh 更多用于服务器端,但该项目目前正在进行中。 github.com/apollostack/apollo-android 了解 Apollo 以及他们正在尝试做的事情并为 Android 社​​区感到兴奋,或者来帮助我们!

以上是关于如何在 Android 中发送带有片段的 graphql 查询的主要内容,如果未能解决你的问题,请参考以下文章

带有片段的 Android Up 按钮未显示完整片段

在Android中将数据从基本活动发送到片段[重复]

如何在Android中加载带有动画的cardview GridView?

如何将选定的微调器 id 传递给片段

当我在导航抽屉中使用带有发送片段的 EditText 时,无法解析片段中的方法“findViewById”? [复制]

如何在android中去listview适配器项目点击监听器片段?