динамическое добавление идентификатора заголовка или любых данных в запрос nestjs axios

#javascript #typescript #axios #nestjs

#javascript #typescript #axios #nestjs

Вопрос:

У меня есть контроллер

 Post : /post
 

его можно вызывать в любое
время каждый раз, когда он вызывается, я должен добавлять идентификатор запроса и авторизацию в заголовок.

для авторизации легко добавить, потому что он должен быть во всех запросах, поступающих с этого контроллера, поэтому я использовал перехватчик axios

   axios.defaults.headers.common[
        'Authorization'
      ] = `Bearer ${token}`;
      axios.defaults.headers.common['Content-Type'] = `application/json`;

 

но как я могу добавить заголовок для каждого потока, для каждого вызова контроллера, чтобы при каждом вызове контроллера заголовок имел «req-id: uuid ()». для каждого запроса, который отправляется во внешний api.

но когда во время предыдущего вызова происходит другой вызов, мне нужно, конечно, создать новый идентификатор запроса

на данный момент я создал его вручную в контроллере:

  async post(){
   reqId = "uuid"
   await service.start(reqId)
 }

 in  each function  i added manually the header to axios

  const headers = {
      'req-id': reqId
  }

 

затем он будет передан для всех функций в качестве параметра . я не хочу использовать его как параметр функции и не хочу дублировать код

как я могу сделать это динамически, не передавая эти данные для всех функций?

использование перехватчика в axios для всех запросов, которые мне нужны для каждого вызова контроллера, спасибо

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

1. проверьте перехватчики axios doc

2. перехватчик @Amintagihani в axios повлияет на все запросы, мне это нужно для каждого потока, что произойдет, если я получу другой запрос, а затем первый запрос выполнит второй вызов внешнего api