SlandShow
@SlandShow
70% of my body is made of movies.

Почему эксоузинг пути к api неправильный?

У меня есть API сервис. У него есть соответствующий api path:
http://localhost:8080/VaultDairy/entry/criteria?contentText=...&title=...


Важно заметить, что параметры опциональные. Можно вообще вызвать http://localhost:8080/VaultDairy/entry/criteria и получить список всех записей без фильтрации.

У меня так же есть сервис в ангуляре, который делает GET запрос:
entryByCriteriaUri = '/api/entry/criteria';
....
getEntriesByCriteria(entry) {
    const allEntries = new Array<Entry>();

    const headers = new HttpHeaders();
    headers.append('accept', '*/*');
    headers.append('Authorization', token);

    this.http.get<Entry[]>(
      this.entryByCriteriaUri,
      {
        headers: headers,
        params: {
          'title': entry.title,
          'contentText': entry.content.contentText
        }
      }
    ).subscribe(entries => {
      entries.forEach(entry => {
        console.log('Current entries from server: ', entry);
        allEntries.push(entry);
      });
    });

    return allEntries;
  }

Безусловно, описал я не весь код, а только ту часть, которая вызывает проблемы.

Помимо всего прочего, у меня настроен экспоузинг в proxy.conf:
"/api/entry/criteria": {
    "target": "http://localhost:8080/VaultDairy/",
    "secure": false,
    "pathRewrite": {
      "^/api/entry/criteria": "entry/criteria"
    }
  }


Но в итоге когда вызываетс сервис - я получаю 404. Для эксперимента я решил убедиться в том, что косяк тут только с URI экспоузингом и подставил вместо
this.entryByCriteriaUri вот это http://localhost:8080/VaultDairy/entry/criteria.

В итоге оно заработало, но мне нужен именно экспоузинг. Как его подправить?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
SlandShow
@SlandShow Автор вопроса
70% of my body is made of movies.
Маппинг экспоузера верный. Просто я обновлял код с уже запущенным сервером, а такие вещи требуют ребута.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы