Поле `Расширения 'не отображается в данных ответа apollo graphql - PullRequest
0 голосов
/ 19 ноября 2018

Вот воспроизводимый пример . Запустите app.js и перейдите на игровую площадку в http://localhost:4000/graphql

Вы можете запускать запросы как:

query RecipeQuery{
  recipe(title:"Recipe 2"){
    description
  }
}

Проблема:

Мне нужна отладочная информация из поля extensions в данных ответа. Я говорю об этом extensions поле:

  "data":{....},
  "extensions": {
    "tracing": {}
    "cacheControl":{}
  }

Но на самом деле я получаю только поле данных:

  "data":{....}

Я уже включил tracing и cacheControl в конфигурации сервера apollo, но поле extensions все еще исключено в данных ответа. Как я могу получить данные extensions?

Вот как запускается двигатель apollo:

const expressApp = express();

const server = new ApolloServer({
    schema,
    tracing: true,
    cacheControl: true,
    engine: false, // we will provide our own ApolloEngine
});

server.applyMiddleware({ app: expressApp });

const engine = new ApolloEngine({
    apiKey: "YOUR_ID",

});

engine.listen(
    {
        port,
        expressApp,
        graphqlPaths: [graphqlEndpointPath],
    },
    () => console.log(`Server with Apollo Engine is running on http://localhost:${port}`),
);

1029 * Зависимость *

  "dependencies": {
    "apollo-cache-control": "^0.1.1",
    "apollo-engine": "^1.1.2",
    "apollo-server-express": "^2.2.2",
    "graphql-depth-limit": "^1.1.0",
    "graphql-yoga": "^1.16.7",
    "type-graphql": "^0.15.0"
  }

1 Ответ

0 голосов
/ 19 ноября 2018

Вы можете отформатировать ответ от apollo с помощью formatResponse.

const server = new ApolloServer({
  typeDefs,
  resolvers,
  formatResponse: response => {
    console.log(response); 
    /* 
    ** { data } with informations such as queryType,
    ** directives ...
    ** I guess there is also the extensions key 
    */
    return response;
  }
});

документ

...