Power BI ma już potrzebny konektor. Utwórz puste zapytanie i użyj Web.Contents. Host pozostaw stały, a endpoint przenieś do RelativePath; dzięki temu usługa rozpozna źródło przy odświeżaniu modelu.
Najważniejsze punkty
Wklej kod M w Edytorze zaawansowanym.
Zostaw stałe https://api.exchangerate.dev i użyj RelativePath.
Wynik ma jeden wiersz na walutę oraz źródło i czas aktualizacji.
Wybierz poświadczenia Anonimowe, bo klucz trafia do nagłówka.
Edytorzy PBIX mogą zobaczyć zapytanie; przy szerokiej dystrybucji użyj proxy.
Utwórz puste zapytanie
Utwórz darmowy klucz. W Power BI Desktop wybierz Pobierz dane → Puste zapytanie, a następnie Widok → Edytor zaawansowany w Power Query.
Wklej zapytanie M
Power Query M · Advanced Editorcopy
let
ApiKey = "exr_live_replace_with_your_key_here",
Base = "USD",
Symbols = "EUR,GBP,JPY",
Response = Json.Document(
Web.Contents(
"https://api.exchangerate.dev",
[
RelativePath = "v1/latest/" & Base,
Query = [symbols = Symbols],
Headers = [Authorization = "Bearer " & ApiKey]
]
)
),
Rates = Record.ToTable(Response[rates]),
Renamed = Table.RenameColumns(
Rates,
{{"Name", "currency"}, {"Value", "rate"}}
),
WithBase = Table.AddColumn(Renamed, "base", each Response[base], type text),
WithSource = Table.AddColumn(WithBase, "source", each Response[source], type text),
WithUpdatedAt = Table.AddColumn(
WithSource,
"data_updated_at",
each DateTimeZone.FromText(Response[data_updated_at]),
type datetimezone
)
in
WithUpdatedAt
Podmień przykładowy klucz, kliknij Gotowe i nazwij zapytanie FxRates. Podgląd powinien pokazać EUR, GBP i JPY w osobnych wierszach.
Sprawdź typy danych
currency, base i source ustaw jako Tekst, rate jako Liczba dziesiętna, a data_updated_at jako Data/Godzina/Strefa. Potem wybierz Zamknij i zastosuj.
Opublikuj i ustaw odświeżanie
W usłudze Power BI otwórz poświadczenia dla https://api.exchangerate.dev i wybierz Anonimowe. Zapytanie M wysyła klucz w nagłówku Authorization. Ustaw częstotliwość odpowiednią dla raportu.
RelativePath zapobiega błędowi dynamicznego źródła
Power BI musi rozpoznać stały host. Zostaw domenę w Web.Contents, a ścieżkę endpointu przenieś do RelativePath, aby odświeżanie działało po publikacji.
Parametr M nie jest sejfem
Osoba edytująca PBIX lub zapytanie może zobaczyć klucz. To wystarcza w małym, zaufanym workspace. Przy szerokiej dystrybucji użyj proxy po stronie serwera.
Kursy orientacyjne
Służą do raportów, analiz, planowania i prezentacji; nie są wykonywalną ofertą ani ceną rozliczeniową.