我正在使用Apollo Client作为前端,使用Graphcool作为后端.有两个查询firstQuery和secondQuery我希望他们在序列页面打开时调用.下面是示例代码(此处未列出TestPage组件的定义):
export default compose(
graphql(firstQuery, {
name: 'firstQuery'
}),
graphql(secondQuery, {
name: 'secondQuery' ,
options: (ownProps) => ({
variables: {
var1: *getValueFromFirstQuery*
}
})
})
)(withRouter(TestPage))
Run Code Online (Sandbox Code Playgroud)
我需要var1在secondQuery从的结果firstQuery.我如何使用Apollo Client和编写?或者还有其他方法吗?提前致谢.
我正在使用 Graphcool 但这可能是一个通用的 GraphQL 问题。有没有办法使两个字段之一成为必需的?
例如说我有一个 Post 类型。帖子必须附加到组或事件。这可以在模式中指定吗?
type Post {
body: String!
author: User!
event: Event // This or group is required
group: Group // This or event is required
}
Run Code Online (Sandbox Code Playgroud)
我的实际需求有点复杂。帖子可以附加到事件,也可以附加到组和位置。
type Post {
body: String!
author: User!
event: Event // Either this is required,
group: Group // Or both Group AND Location are required
location: Location
}
Run Code Online (Sandbox Code Playgroud)
所以这是有效的:
mutation {
createPost(
body: "Here is a comment",
authorId: "<UserID>",
eventId: "<EventID>"
){
id
}
}
Run Code Online (Sandbox Code Playgroud)
就像这样:
mutation { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Graphcool,Apollo和React应用程序设置Auth0的通用登录.我的网站是一个静态托管Netlify的SPA.
我正在使用Graphcool的官方Auth0模板:https://github.com/graphcool/templates/tree/master/auth/auth0
但是,我在官方文档中找不到太多细节,所以我遵循本教程:https://medium.com/@quiaro/authentication-inside-a-graphcool-service-using-auth0-5056806d02f0
我有一个由登录组件调用的auth组件:
import React from 'react';
import auth0 from 'auth0-js';
export default class Auth {
auth0 = new auth0.WebAuth({
domain: 'MY-SITE.auth0.com',
clientID: 'MY-CLIENT-ID',
redirectUri: 'http://localhost:3000/callback',
audience: 'https://MY-SITE.auth0.com/userinfo',
responseType: 'id_token',
scope: 'openid email',
});
login() {
this.auth0.authorize();
}
}
import Auth from './Auth';
class Login extends React.Component {
render() {
const auth = new Auth();
auth.login();
return (
// Login message
);
}
}
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,这将我带到Auth0的页面,我可以登录,之后我被重定向回我的网站,并将参数添加到网址:
http://localhost:3000/callback#id_token=LONG-ID-TOKEN&state=STRING
Run Code Online (Sandbox Code Playgroud)
如果我将LONG-ID-TOKEN粘贴到https://jwt.io/中,则信息似乎是正确的,并且表示签名有效:
标题:
{
"typ": "JWT", …Run Code Online (Sandbox Code Playgroud) 我确定这是一件很简单的事情,但我在GraphQL的doc或Graphcool中找不到任何东西.
假设我有一个具有此架构的实体(新的GraphQL用户,抱歉,如果我在架构表示中出错):
Book {
name: String!
author: String!
categories: [String!]
}
Run Code Online (Sandbox Code Playgroud)
如何查询属于该"mystery"类别的所有书籍?我知道我可以过滤allBooks(filter: {}),但categories_in: ["mystery"]并categories_contains: "mystery"没有做到这一点.
我想将一些Slack消息保存到GraphQL后端.我可以使用Slack API以及他们所谓的"Slack App Commands",因此每次向Slack通道发送消息时,Slack会自动向我的服务器发送HTTP POST请求,并将新消息作为数据.
我正在考虑使用AWS lambda函数将此发布请求转发到我的GraphQL服务器端点(我正在使用GraphCool).我是GraphQL的新手,我使用Apollo从浏览器创建突变.现在我需要从我的节点服务器(AWS Lambda函数)而不是浏览器发送变异.我怎样才能做到这一点?
谢谢.
我正在尝试按照如何在GraphQL上的本教程设置一个graphcool订阅/ websockets,但收到以下消息:
WebSocket与“ wss://subscriptions.graph.cool/v1/###”的连接失败:WebSocket在建立连接之前已关闭。
我似乎已经按照教程掌握了所有内容。您知道为什么未建立websockets连接吗?
index.js
import React from 'react'
import ReactDOM from 'react-dom'
import App from './components/App'
import registerServiceWorker from './registerServiceWorker'
import './styles/index.css'
import { ApolloProvider, createNetworkInterface, ApolloClient } from 'react-apollo'
import { SubscriptionClient, addGraphQLSubscriptions } from 'subscriptions-transport-ws'
import { BrowserRouter } from 'react-router-dom'
import { GC_AUTH_TOKEN } from './constants'
const networkInterface = createNetworkInterface({
uri: 'https://api.graph.cool/simple/v1/###'
})
const wsClient = new SubscriptionClient('wss://subscriptions.graph.cool/v1/###', {
reconnect: true,
connectionParams: {
authToken: localStorage.getItem(GC_AUTH_TOKEN),
}
})
const networkInterfaceWithSubscriptions = addGraphQLSubscriptions(
networkInterface,
wsClient …Run Code Online (Sandbox Code Playgroud)使用 GraphCool 后端,有没有办法在查询中使用条件过滤器?
假设我有一个这样的查询:
query ($first: Int, $skip: Int, $favorited: Boolean) {
allPhotos (
first: $first
skip: $skip
filter: {
favorited: $favorited
}
)
{
id
url
title
favorited
}
}
//variables: { "first": 10, "skip", "favorited": true }
Run Code Online (Sandbox Code Playgroud)
上面的查询将:
1) 只获取收藏的照片。
2)只获取不喜欢的照片。
我的问题是我希望能够:
1) 查询仅收藏或不收藏的照片。
2) 查询照片,不管它们是否被收藏。
如何有条件地包含过滤器?我可以吗?我正在用 Javascript 中的 react-apollo 做一些事情,我可以用代码找出一个解决方案,但我想知道是否有办法在 graphql 领域做到这一点。
嗨,我想用graphcool运行此命令:
graphcool-framework local up
Run Code Online (Sandbox Code Playgroud)
我从Docker得到这个错误,
docker could not find plugin bridge in v1 plugin registry: plugin not found
Run Code Online (Sandbox Code Playgroud)
我的Docker版本是18.03.0-ce版本
有什么问题,如何解决?
感谢您的时间.
我在前端使用react-apollo,在后端使用graphcool.我有一个突变,创建一个这样的教程:
const CREATE_TUTORIAL_MUTATION = gql`
mutation CreateTutorialMutation(
$author: String
$link: String
$title: String!
$postedById: ID!
$completed: Boolean!
) {
createTutorial(
author: $author
link: $link
title: $title
postedById: $postedById
completed: $completed
) {
author
link
title
postedBy {
id
name
}
completed
}
}
`
Run Code Online (Sandbox Code Playgroud)
它在提交处理程序中调用,如此...
this.props.createTutorialMutation({
variables: {
author,
link,
title,
completed: false,
postedById
}
})
Run Code Online (Sandbox Code Playgroud)
一切都很美妙.
现在我想在创建新教程时添加一组标记.我创建了输入字段并将其连接起来,以便tags变量是一个对象数组,每个对象都有一个标记id和标记文本.
如果我尝试将标记字段添加到变异中,则需要标量类型.但是对于一组对象似乎没有标量类型.
如果我在调用变异时将tag变量作为参数传递,我如何填充变异中的Scalar类型字段(在148行上这里https://github.com/joshpitzalis/path/blob/graphQL/src/ components/Add.js)和架构?
我是graphQL的新手,我明白我可能会以错误的方式接近这一点.如果是这种情况,我如何在graphQL中添加一个对象数组?
我想在android中解析图酷服务.我无法解析数据.
这是URL:
https://api.graph.cool/simple/v1/cj8dyjr0144dk33b7pz
Run Code Online (Sandbox Code Playgroud)
必须解析这项服务
mutation {
updateLocation(
id:"cjck0maq9q7ovs54z",
lat:"16.11",
long:"81.11"
) {
id,lat,long
}
}
Run Code Online (Sandbox Code Playgroud)
请,任何人都有这个想法.请帮助解决这个问题.
graphcool ×10
graphql ×6
apollo ×4
android ×1
auth0 ×1
aws-lambda ×1
docker ×1
graphql-js ×1
lambda ×1
parsing ×1
react-apollo ×1
reactjs ×1