【问题标题】:How to send graphql query with fragments in Android如何在 Android 中发送带有片段的 graphql 查询
【发布时间】: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 架构。

标签: java android 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 社​​区感到兴奋,或者来帮助我们!
猜你喜欢
  • 2021-04-23
  • 2018-01-12
  • 2018-11-10
  • 2017-04-28
  • 2016-08-23
  • 2019-10-02
  • 2022-01-16
  • 2023-04-05
  • 2019-06-20
相关资源
最近更新 更多