Пользовательский ответ проверки работоспособности сервера Apollo

#graphql #apollo #apollo-server

#graphql #apollo #apollo-server

Вопрос:

В настоящее время я хочу предоставить дополнительную информацию для проверки работоспособности, отличную от status: pass. Возможно ли это? Я пытался отправлять тестовые строки, к сожалению, я все еще вижу тот же ответ json. Заранее благодарю вас!

Код:

        onHealthCheck: (req) => {
            return new Promise((resolve, reject) => {
                if(true) {
                    console.log(req);
                    resolve(req);
                    //resolve("test")
                } else {
                    reject();
                }
            })
        }
  

Ответ №1:

Реализация onHealthCheck выглядит следующим образом (используется экспресс):

     if (onHealthCheck) {
      onHealthCheck(req)
        .then(() => {
          res.json({ status: 'pass' });
        })
        .catch(() => {
          res.status(503).json({ status: 'fail' });
        });
    }
  

как вы можете видеть, он возвращает жестко заданное значение.

Вы всегда можете реализовать свою пользовательскую проверку работоспособности также с помощью Express.

Комментарии:

1. спасибо за ваш ответ! Я также изучал этот подход. вы знаете, могу ли я создать свой пользовательский URL? каждый раз, когда я пытаюсь использовать: await this.server.getMiddleware().use(‘/ customHealth’, (req, res, next) => {…}); он по-прежнему выводит меня на игровую площадку graph ql. Есть идеи, почему это так?

2. Я не уверен, что вы используете, но вы можете интегрировать сервер Apollo в Express, а затем создать пользовательскую конечную точку с помощью Express: apollographql.com/docs/apollo-server/v1/servers/express