如何从MarkLogic Grove中自己的API调用后端MarkLogic API?

如何从MarkLogic Grove中自己的API调用后端MarkLogic API?,marklogic,marklogic-dhf,Marklogic,Marklogic Dhf,这个问题是下面问题的延续 我能够实现一个示例RESTAPI,在使用Grove进行身份验证时可以调用它,如下所示 中间层/routes/index.js const authProvider = require('../../grove-node-server-utils/auth-helper'); router.get('/my-rest-api/bar',(req, res) => { const response = {status : "success"

这个问题是下面问题的延续

我能够实现一个示例RESTAPI,在使用Grove进行身份验证时可以调用它,如下所示

中间层/routes/index.js

const authProvider = require('../../grove-node-server-utils/auth-helper');

router.get('/my-rest-api/bar',(req, res) => {
  const response = {status : "success"};
  authProvider.isAuthenticated(req,res,()=>{
    res.send(response);
  });
});
const authProvider = require('../../grove-node-server-utils/auth-helper');
const backend = require('../../grove-node-server-utils/backend');

router.get('/my-rest-api/bar',(req, res) => {
  const myResponse = {status : "success!!"};
  console.log("start");
  const backendOptions = {
    method: 'GET',
    path: '/v1/resources/myMarkLogicAPI?p1=test'
  };

  authProvider.isAuthenticated(req,res,()=>{
    console.log("preprocessing");
    backend.call(req, backendOptions, () => {
      console.log("postprocessing")
      res.send(myResponse);
    });
  });
});
接下来,我想从MyRESTAPI中调用MarkLogicAPI。我通过反复试验写了以下内容,但出现了一个错误。我应该怎么写

中间层/routes/index.js

const authProvider = require('../../grove-node-server-utils/auth-helper');

router.get('/my-rest-api/bar',(req, res) => {
  const response = {status : "success"};
  authProvider.isAuthenticated(req,res,()=>{
    res.send(response);
  });
});
const authProvider = require('../../grove-node-server-utils/auth-helper');
const backend = require('../../grove-node-server-utils/backend');

router.get('/my-rest-api/bar',(req, res) => {
  const myResponse = {status : "success!!"};
  console.log("start");
  const backendOptions = {
    method: 'GET',
    path: '/v1/resources/myMarkLogicAPI?p1=test'
  };

  authProvider.isAuthenticated(req,res,()=>{
    console.log("preprocessing");
    backend.call(req, backendOptions, () => {
      console.log("postprocessing")
      res.send(myResponse);
    });
  });
});

错误消息为:{“message”:“TypeError:无法将未定义或null转换为object”}

我怀疑代码需要一个headers属性作为BackEndActions的一部分。我们通常将后端调用包装在authProvider.getAuth调用中,该调用返回我们传递给后端调用的身份验证头。您可能也希望这样做,以确保允许您访问后端

这就是说,使用您在上一个问题中提到的新方法可能更简单。我还展示了一些示例代码


我已经使用authProvider.getAuth成功调用了MarkLogic API。非常感谢。这次我的最终目标是在MarkLogicAPI调用前后在Grove上添加处理。DefaultRestRoute有可能吗?