Angular - dostęp do API po localhost

0

Koleżanki i koledzy, mam przed sobą takie oto zagadnienie - dodam na wstępie, że z Angularem pracuję niezbyt długo.
Po długich poszukiwaniach nie znalazłem odpowiedzi, która by rozwiązała mój problem - jest duża szansa, że niewłaściwie szukam.

Potrzebuję stworzyć prostą aplikację dostępną dla użytkowników poprzez przeglądarkę internetową.
Wybór padł na Angular ze względu, że jest mi odrobinę znany.

Aplikacja ma składać się z niezależnego back- oraz front- endu.
Backend w postaci REST API powstał na bazie .net Core i działa bez problemu - wykorzystuję go do komunikacji z np. hurtowniami danych.
Komplikacją jest to, że API nie powinno być wystawione publicznie, dostępne jest tylko po localhost.

I teraz moje pytanie właściwe.
Czy jest to możliwe oraz w jaki sposób aby aplikacja Angular'a (która de facto działa na komputerze klienta) mogła się skomunikować z moim API po localhost?
Dodam, że aplikacja Angular'owa jest hostowana na tej samej maszynie co REST API.

Z góry dziękuję za wsparcie i nakierowanie na właściwą drogę.

pzdr,

0

Odpowiadając na komentarz do powyższego posta, tak ma wyglądać schemat aplikacji.
Moje REST API pozostaje "ukryte" w obrębie serwera.

app.jpeg

0

Jak masz wersję wystawioną w internecie, to nie łączysz się z API pod localhost:port, bo wtedy użytkownik łączy się sam ze sobą. Musisz podmienić endpointy z localhost na IP serwera.

0

Proste wyjście dla Ciebie to postawienie serwera Ngnix albo Apache i skonfigurowanie builda z Angulara i API pod jednym portem ale innym URL https://www.linkedin.com/pulse/decouple-your-single-page-app-from-backend-nginx-tom-bray Użytkownik wpisując w przeglądarkę ip_serwera:port wejdzie na stronę. Jeśli chcesz mieć nazwę hosta, poszukaj jak konfigurować \etc\hosts np. pod Windowsem.

3

Czy można tak zmodyfikować aplikację Angular aby potrafiła korzystać z API "schowanego" na serwerze

Nie. Bo klient aplikacji nie jest na serwerze tylko na komputerze klienta. To, co jest na serwerze to tylko pliki, które po requeście przeglądarki są zwracane. Potem komunikacja do api odbywa się już z przeglądarki do serwera. Żeby klient mógł połączyć się z api musi gdzieś przecież strzelić.

1

Myślę, że szukasz rozwiazania niewłaściwego poblemu. Jeśli aplikacja ma być dostępna publicznie, to jej API też musi być dostępne publicznie, chyba że będziesz wpinać użytkiowników do swojej sieci przez VPN, ale z localhost i tak to nie zadziała. Zrób to zgodnie ze standardami i dodaj jakąś formę autentykacji, zamiast wymyślać koło na nowo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1