我正在使用Nuxt和Nuxt-Apollo创建我的Vue应用程序。我的nuxt.config.js
文件中有以下apollo配置:
apollo: {
clientConfigs: {
default: {
httpEndpoint: 'http://localhost:8000/graphql/'
},
stage: {
httpEndpoint: 'https://example-stage.com/graphql/'
}
prod: {
httpEndpoint: 'https://example.com/graphql/'
}
}
}
如何指向stage
或prod
配置。每次我运行该应用程序时,它都指向default
配置。必须在某个地方可以设置它。
答案 0 :(得分:0)
假设您尝试访问多个客户端,而不仅是prod和dev的其他客户端,这可能会有所帮助,就像我在当前项目中使用的一样。
apollo: {
includeNodeModules: true, // optional, default: false (this includes graphql-tag for node_modules folder)
authenticationType: 'Basic', // optional, default: 'Bearer'
errorHandler: '~/apollo/customErrorHandler',
clientConfigs: {
default:
{
httpEndpoint:
'https://me.something.com/api/graphql/query?token=******',
httpLinkOptions: {
credentials: 'same-origin'
}
},
// '~/apollo/clientConfig.js',
otherClient: {
httpEndpoint:
'https://second-endpoint-gql.herokuapp.com/v1/graphql',
httpLinkOptions: {
credentials: 'same-origin'
}
}
}
},
现在您所要做的就是使查询正常进行,但区别在于vue组件。
/gql/allCars.gql
{
allCars {
id
make
model
year
}
}
默认调用将像这样正常进行:
<script>
import allcars from '~/gql/users'
export default {
apollo: {
allcars: {
prefetch: true,
query: allcars
}
},
filters: {
charIndex (i) {
return String.fromCharCode(97 + i)
}
},
head: {
title: ....
},
data () {
return {
...
}
}
}
</script>
调用次要端点需要添加$ client:
<script>
import allcars from '~/gql/users'
export default {
apollo: {
$client: 'otherClient',
allcars: {
prefetch: true,
query: allcars
}
},
filters: {
charIndex (i) {
return String.fromCharCode(97 + i)
}
},
head: {
title: ....
},
data () {
return {
...
}
}
}
</script>
apollo调试器似乎只查询apollo配置中端点列表上的最后一个端点,这毫无用处。
参考我如何进行上述集成:Vue multiple client