Я использую локальное угловое приложение, и у меня проблема с получением данных из API на внешний сервер.Я попытался использовать прокси, поэтому я создаю файл proxyconfig.json , и я включил его в командную строку через
ng serve --proxy-config proxyconfig.json
А вот содержимое:
{
"/api/*": {
"target": "https://bittrex.com/api/v1.1/public/",
"secure": false,
"pathRewrite": {
"^/api": ""
},
"changeOrigin": true
}
}
Мне нужно передать переменные, поэтому я создал сервис OrderBookService :
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { OrderBook } from './order-book.model';
@Injectable({
providedIn: 'root',
})
export class OrderBookService {
constructor(private httpClient: HttpClient) {
}
getOrderBookBittrex(currency1: string, currency2: string): Observable<OrderBook[]> {
const url = `http://localhost:4200/api/getorderbook?market=${currency1}-${currency2}&type=both`;
return this.httpClient.get<OrderBook[]>(url);
}
}
Проблема в том, что когда я хочу получить эти данные и сохранить их в переменной в своем компоненте, путь не переводится должным образом: он отправляет запрос на http://localhost:4200/api/getorderbook?market=BTC-LTC&type=both вместо https://bittrex.com/api/v1.1/public/getorderbook?market=BTC-LTC&type=both:
private getTransfers(): void {
const currency1 = 'BTC';
const currency2 = 'LTC';
this.orderBookService.getOrderBookBittrex(currency1, currency2)
.subscribe(orders => {
this.orderBook = orders;
});
}
Кто-нибудь знает, как это сделать правильно?
Работает нормально, когда я помещаю весь путь к proxconfig.json так:
{
"/api/*": {
"target": "https://bittrex.com/api/v1.1/public/getorderbook?market=BTC-LTC&type=both",
"secure": false,
"pathRewrite": {
"^/api": ""
},
"changeOrigin": true
}
}
Но мне нужно передать переменные.