Cześć,
mam problem z odbieraniem danych z api wystawionym w springu.
Zrobiony dla testu springowy kontroler:
@RequestMapping(value = "/user/data")
public TestUser getUser(final Authentication authentication) {
return new TestUser(123, "admin", "admin", "admin", "ADMIN", "ADMIN", true);
}
I teraz kod angularowy:
import {Injectable} from "@angular/core";
import {Http} from "@angular/http";
import {Observable} from "rxjs/Rx";
import 'rxjs/add/operator/map';
import {User} from "../models/user.model";
@Injectable()
export class UserService{
private userUrl = "api/user";
constructor(private http:Http){
}
getLoggedInUserData(): Observable<User> {
return this.http.get(`${this.userUrl}/data`).map(res => res.json());
}
}
Próba otrzymania danych w głównym komponencie:
@Component({
moduleId: module.id,
selector: 'my-app',
templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
private loggedInUser:User;
constructor(private userService:UserService) {
}
ngOnInit(): void {
this.userService.getLoggedInUserData()
.subscribe((user) => {
this.loggedInUser = user;
}
);
}
}
Wynik działania jest taki, że przekierowuje mnie na podstronę /api/user/data i wyświetla jsona, zamiast nie przechodzić na żadną podstronę tylko odebrać dane i przypisać je do zmiennej loggedInUser.
Jakieś pomysły co robię źle?