草庐IT

javascript - 使用 Apollo React 使用 GraphQL 包装 REST api

我需要使用Apollo客户端和React做一个项目(货币兑换应用程序)。我需要用graphql包装现有的RESTapi(fixer.io)。到目前为止,没有运气在网上找到解决方案。尝试了几个教程,但它们似乎不起作用。有人有这方面的经验吗?谢谢。 最佳答案 我假设你使用Apolloclient2.0并希望一切都在客户端。首先你需要一个apollobridgelink.它用于“当您(还)没有GraphQL服务器并且想在客户端上使用GraphQL时”。它的源代码很短,所以你可以内联它:/*Copyright(c)2017DavidCize

javascript - GraphQL 使用字段值作为另一个查询的变量

我正在查询同一组件中都需要的2个对象。问题是其中一个查询必须等待另一个查询并将其id字段用作另一个查询的参数。不确定如何实现。constPlayerQuery=gql`queryPlayerQuery($trackId:Int!,$duration:Int!,$language:String!){subtitle(trackId:$trackId,duration:$duration){id,lines{texttime}}translation(trackId:$trackId,language:$language,subtitleId:???){lines{translationo

javascript - 如何访问 GraphQL 解析器中的请求对象(使用 Apollo-Server-Express)

我有一个使用GraphQL的标准快速服务器constserver=express();server.use('/graphql',bodyParser.json(),graphqlExpress({schema}));问题是:如何访问解析器中的request对象?我想在一些特定的查询中检查JWT这是导入的模式:consttypeDefs=`typeUser{id:String,name:String,role:Int}typeQuery{user(id:String):User,users:[User]}`;constresolvers={Query:{user:(_,args,con

javascript - "export ' createNetworkInterface ' was not found in ' Apollo 客户端'

我做了这个样本:https://github.com/Akryum/vueconf-2017-demo因此,我的项目中有相同的文件:https://github.com/Akryum/vueconf-2017-demo/blob/master/src/apollo-client.js这是我的应用程序中使用的代码:import{ApolloClient,createNetworkInterface}from'apollo-client'constapolloClient=newApolloClient({networkInterface:createNetworkInterface({u

javascript - react + Apollo : GraphQL errors array not passed into component

根据这些Apollodocs,设置all的error-policy应该使GraphQL响应的errors数组可用于我的Apollo包装的React组件“所以[my]UI可以使用它们。”我的应用程序是通用的,所以我使用此策略很重要,这样错误就不会阻止应用程序完全呈现。问题是,即使我的浏览器开发工具在服务器响应中显示了errors数组,我也无法在我的React组件的props中访问它。同样,props.data.error始终未定义。这是为什么?//ComponentimportReactfrom'react';import{graphql}from'react-apollo';impor

javascript - 如何使用 Apollo-Client 为请求设置超时

我有一个React-Native应用程序,我在其中向GraphQL服务器发出请求。一切正常,除了我需要一种方法将请求/客户端的超时设置为5或10秒。目前请求在超时之前需要很长时间(大约1分钟)。这是我如何使用客户端的简单示例。constclient=newApolloClient({networkInterface:createNetworkInterface({uri:`${config.server_hostname}/graphql`})});client.query({query:gqlString});我一直无法通过StackOverflow、谷歌搜索或Apollo的文档找到

javascript - 如何在突变后更新分页列表?

我有一个包含消息列表的线程,它是通过GET_THREAD_MESSAGES查询获取的。该查询是分页的,根据用户之前是否看过该线程,可能会加载第一页、最后一页或仅加载新消息。(即任何first/after/before/last都可以传递任何值)thread(id:"asdf"){messageConnection(after:$after,first:$first,before:$before,last:$last){edges{cursornode{...messageInfo}}}}现在我有一个sendMessage突变,我调用它然后在该突变的update方法中我想乐观地将发送的消

javascript - 如何将两个依赖的 GraphQL 查询与 'compose' 结合起来?

已解决!我正在尝试合并两个相关的GraphQL查询。第一个应该获得一个ID,第二个应该使用那个ID。我读到compose的行为类似于flowRight(),但无论我以什么顺序放置查询,如果queryId低于queryDetails,queryDetail总是被跳过(如预期的那样)。无论我如何将我的代码放在一起,该变量都是未定义的。import{graphql,compose}from'react-apollo'importgqlfrom'graphql-tag'classHomeextendsComponent{constructor(props){super(props)consol

javascript - 如何在 Vanilla JS 中使用 Apollo Client 创建 GraphQL 订阅

最近ApolloClient发布了一个websocket订阅功能,但到目前为止我只看到它是通过在componentWillMount生命周期Hook中使用subscribeToMore启动查询来使用的。这是取自https://dev-blog.apollodata.com/tutorial-graphql-subscriptions-client-side-40e185e4be76#0a8f的示例constmessagesSubscription=gql`subscriptionmessageAdded($channelId:ID!){messageAdded(channelId:$c

javascript - Apollo 客户端 : Upsert mutation only modifies cache on update but not on create

我有一个在创建或更新时触发的更新插入查询。在更新时,Apollo将结果集成到缓存中,但在创建时不会。这里是查询:exportconstUPSERT_NOTE_MUTATION=gql`mutationupsertNote($id:ID,$body:String){upsertNote(id:$id,body:$body){idbody}}`我的客户:constgraphqlClient=newApolloClient({networkInterface,reduxRootSelector:'apiStore',dataIdFromObject:({id})=>id});来自服务器的响应