任何人都可以在JAVA的Apache Apollo Queue生产者和消费者身上提供示例吗?早些时候我使用Apache ActiveMQ,但现在我想迁移.
我有一个现有的代码库,它使用 Meteor 方法从客户端获取请求并在服务器上执行数据库操作。我想尝试将这个项目转移到 GraphQL,但我无法理解这项工作的范围,尤其是这对这些 Meteor 方法意味着什么。
A) GraphQL 会取代Meteor 方法吗?所以我会在 GraphQL 查询、解析器和突变中重新实现这个逻辑吗?
B) GraphQL 是否与 Meteor 方法串联工作?即,客户端调用 Meteor 方法,该方法内部调用服务器上的一个或多个突变?
C) GraphQL 是否与 Meteor 方法并行工作,并具有明显的关注点分离?即,所有数据库操作都被卸载到客户端突变调用,但所有其他过程(例如发送电子邮件和其他作业)仍然发生在 Meteor 方法中。
希望找到有关此主题的一些说明。谢谢!
我最难弄清楚如何在php中正确格式化graphql api突变POST请求。
如果我对字符串进行硬编码并将其用作 POST 请求中的数据,它的工作方式如下:
'{"query":"mutation{addPlay(input: {title: \"two\"}){ properties { title } } }"}'
但是如果我有一个输入值的 php 数组:
$test_data = array(
'title' => 'two'
);
Run Code Online (Sandbox Code Playgroud)
我似乎无法正确格式化。json_encode 还在 graphql 因错误而拒绝的键周围加上双引号Syntax Error GraphQL request (1:26) Expected Name, found String。
我最终需要一个解决方案,将更大更复杂的数组转换为可用的东西。
阿波罗graphql-tools现在有Schema Stitching,这很棒.我想合并多个端点以生成类似于GraphQL Hub的模式,如下所示:
query {
github: { ... } # GitHub Schema
twitter: { ... } # Twitter Schema
myOwnGraphqlSchema: { ... }
}
如何做到这一点的最佳方法是什么?
GitHub问题:https://github.com/apollographql/graphql-tools/issues/439
在这里进行测试:https://launchpad.graphql.com/3xlrn31pv
谢谢.
GitHub的新GraphQL API需要使用令牌作为以前的版本进行身份验证。那么,我们如何在HttpLink里面添加“ Header”信息Apollo-Client呢?
const client = new ApolloClient({
link: new HttpLink({ uri: 'https://api.github.com/graphql' }),
cache: new InMemoryCache()
});
Run Code Online (Sandbox Code Playgroud) 我是 GraphQL 的新手,打算使用 GraphQL 构建解决方案。
一切看起来都很酷,但只关心如何在 GraphQL 服务器中实现基于角色的授权(我正在考虑使用 GraphQL.js/apollo 服务器)
我将有一个包含所有用户的用户表。在用户表中有一个角色字段,其中包含特定用户的角色。将根据用户的角色授予查询和更改。
我怎样才能实现这个结构?
谢谢!
我创建了一个 LoginMutation,它返回一个令牌和一个用户(带有他的 id 和名字)。这是突变模式:
const LOGIN_MUTATION = gql`
mutation loginMutation($email: String!, $password: String!) {
loginUser(email: $email, password: $password) {
token
user {
id
firstName
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我在我的网站上输入令牌和用户时,graphql 服务器会很好地返回。用户已存储,我可以在我的开发工具中看到它:
我创建了一个布局组件,我想在它上面显示用户的名字。那么如何从 apollo 商店获取数据呢?
谢谢你的帮助。
下面提供了与此问题有关的文件:
登录页面.js
class LoginPage extends Component {
constructor(props) {
super(props);
this.state = {
login: true, //switch between Login and SignUp
email: '',
password: '',
firstName: '',
lastName: '',
loading: false,
error: ''
};
this.handleSubmit = this.handleSubmit.bind(this);
this.handleInputChange = this.handleInputChange.bind(this);
}
handleSubmit(){
this.setState({loading: true, error: ''});
this._confirm();
} …Run Code Online (Sandbox Code Playgroud) 我正在使用Laravel应用程序,该应用程序在客户端使用React和Redux,以及React预设和Mix。我决定尝试使用API的GraphQL,而不是通常的REST API方法,到目前为止,它的工作正常。但是,我现在陷入困境。
我将Apollo用作HTTP客户端,因为它是为与GraphQL一起使用而构建的。过去,我曾使用JWT Auth来保护API,因此自然而然也选择了这种方法,因为实现只是添加适当的标头的一种情况。我遵循了有关使用Apollo设置标题的说明,但是没有设置标题。这是有问题的JS文件:
import LinkList from './components/LinkList';
import React from 'react';
import ReactDOM from 'react-dom';
import {Container} from './container';
import {createStore} from 'redux';
import reducer from './reducer';
import {Provider} from 'react-redux';
import {fromJS} from 'immutable';
import ApolloClient from 'apollo-boost';
import gql from 'graphql-tag';
import { createHttpLink } from 'apollo-link-http';
import { setContext } from 'apollo-link-context';
import { InMemoryCache } from 'apollo-cache-inmemory';
const httpLink = createHttpLink({
uri: window.initialData.graphql_route
});
const authLink = setContext((_, { headers }) …Run Code Online (Sandbox Code Playgroud) 我有一些想要的功能,apollo-server并花了一些时间将代码重构为它(以前使用express-graphql)。现在唯一的问题是我的Web应用程序之间(使用apollo-client)用于经过身份验证的请求之间存在“ CORS”问题。我记得在1.x版本中也遇到过这个问题,并花了很多时间来解决这个问题,但是我以前的解决方案在2.x版本中不起作用,对于能成功解决此问题的任何人,我们将不胜感激。工作。
localhost:8081localhost:4000const client = new ApolloClient({
link: createHttpLink({
uri: 'http://localhost:4000/graphql',
credentials: 'include'
})
})
Run Code Online (Sandbox Code Playgroud)
// Initializing express app code
var app = ....
// Using cors
app.use(cors({
credentials: true,
origin: 'http://localhost:8081',
}));
// Apollo Server create and apply middleware
var apolloServer = new ApolloServer({ ... });
apolloServer.applyMiddleware({ app })
Run Code Online (Sandbox Code Playgroud)
当客户端通过查询后端时。apollo-client,我在Chrome中收到以下错误:
但是,在服务器代码中,我明确设置了起点。当我在控制台中检查网络请求时,我得到了一个矛盾的故事,并且Access-Control-Allow-Origin显式设置为http://localhost:8081
使用Insomnia查询后端服务器并获得预期结果时,我没有遇到此问题。是否有人apollo在客户端和服务器上进行设置localhost并成功进行身份验证有经验?
apollo ×10
graphql ×5
javascript ×3
reactjs ×3
react-apollo ×2
apache ×1
cors ×1
github-api ×1
java ×1
jwt ×1
meteor ×1
php ×1
typescript ×1