Я только что продублировал из другого проекта нашу угловую настройку apollo, где мы инициализируем Apollo после того, как получим ответ от нашего сервера после успешного входа в систему.
@Effect({ dispatch: true })
setLoginResponseToken$ = this.actions$.pipe(
ofType(AuthActions.ActionTypes.SET_LOGIN_RESPONSE_ACTION),
switchMap((loginResponse: UserLoginResponse) => {
=> this.init(loginResponse.authorization.token);
return this.authService.getUserIdWithSelfbitsUserId(loginResponse).pipe(
map((pgUserId: string) => {
console.log('login effect', pgUserId);
return { type: AuthActions.ActionTypes.SET_POSTGRES_USER_ACTION, payload: pgUserId };
})
);
})
);
init(token) {
const http = this.httpLink.create({
uri: environment.APOLLO_GRAPHQL_ENDPOINT
});
const middleware = new ApolloLink((operation, forward) => {
operation.setContext({
headers: new HttpHeaders().set('Authorization', 'Bearer ' + token || null)
});
return forward(operation);
});
const logoutLink = onError(({ response, networkError }) => {
let errorToast = this.toastCtrl.create({
message: 'error'
});
errorToast.present();
});
if (!this.apollo.getClient()) {
this.apollo.createDefault({
link: from([logoutLink, middleware, http]),
cache: new InMemoryCache(),
connectToDevTools: true,
defaultOptions: {
watchQuery: {
errorPolicy: 'ignore'
}
}
});
}
}
Но когда я тогда пытаюсь использовать apollo для запроса, исходящий вызов не переходит к предопределенной конечной точке graphql, а вместо этого идет к
http://192.168.199.72:8100/POST и я получаю 404 (не найдено)
Я следовал Apollo Angular Setup до буквы, и я не использую apollo-boost.
Странно, что я использую точную копию другого нашего рабочего проекта.
Моя версия apollo
"apollo-angular": "1.2.0",
"apollo-angular-link-http": "1.2.0",
"apollo-cache-inmemory": "1.2.9",
"apollo-client": "2.4.1",
"apollo-link": "^1.2.2",
"apollo-link-error": "1.1.0",
Кто-нибудь знает, что происходит?