Aurelia: настроить клиент выборки

Я использую клиент извлечения Aurelia для связи с моим сервером. В каждой модели viewModel, использующей клиент извлечения, я должен настроить его так, чтобы клиент использовал перехватчик для отправки настраиваемого заголовка (токена).

Есть ли способ настроить клиент выборки где-то вместо того, чтобы переписывать код перехватчика в каждой модели представления.

1 ответ

Решение

Вы можете поместить конфигурацию в файл main.js. Как это:

...
aurelia.use
  .standardConfiguration()
  .developmentLogging();

let container = aurelia.container;

let http = new HttpClient();
http.configure(config => {
  config
  .useStandardConfiguration()
  .withBaseUrl('http://localhost:8080/api/')
  .withDefaults({
     headers: {
       'Authorization': tokenVariable // <---- your magic here
     }
  })
  .withInterceptor({
    request(request) {
      console.log(`Requesting ${request.method} ${request.url}`);
      return request;
    },
    response(response) {
      console.log(`Received ${response.status} ${response.url}`);
    }
  });
});

container.registerInstance(HttpClient, http);

Теперь вам просто нужно внедрить HttpClient, чтобы настроить экземпляр выше.

@inject(HttpClient)
export class MyViewModel {
}

Более подробная информация на https://github.com/aurelia/fetch-client/blob/master/doc/article/en-US/http-services.md

Другие вопросы по тегам