gpt4 book ai didi

java - 创建对象时向 Angular 返回状态

转载 作者:行者123 更新时间:2023-12-02 02:27:19 24 4
gpt4 key购买 nike

在我的应用程序中,用户可以将电影标题添加到他们的观看列表中。在我的组件中我有这个功能:

createMovie(movie: Movie): void {
this._dataService.createMovie<Movie>({'name': 'Star Wars', 'id': 111, 'description': 'A war in the Stars'})
.subscribe((data) => this.movies.push(data),
error => () => {
'something went wrong';
},
() => {
// console.log(this.movies);
});
}

目前有一些虚拟信息。

在我的服务中,我有:

public createMovie<T>(movie: Movie): Observable<T> {
return this.http.post<T>('/api/movies/', movie, {headers: this.getToken()});
}

所以我将电影对象和 token 传递给后端。

在我的 MovieController.java 中,我有:

@RestController
@RequestMapping("api/movies")
public class MovieController {

@Autowired
private MovieService movieService;

@RequestMapping(value = "/", method = RequestMethod.POST)
public Movie createMovie(@RequestBody Movie movie){
return movieService.createMovie(movie);
}
}

以及 movieService 中的 createMovie 函数:

@Override 
public Movie createMovie(Movie movie) {

movieRepository.save(movie);

User current_user = userService.getUser();
current_user.addMovie(movie);
userRepository.save(current_user);

return movie;
}

这一切都工作正常,但当电影成功添加到列表(数据库)时,我想向角度应用程序返回一条消息。我想我应该使用@ResponseBody对于它,但我不确定如何将电影对象和状态文本返回到角度应用程序。

例如,当添加一部电影时,我想从后端返回一条消息“movie.name 已成功添加到您的观看列表”。

最佳答案

要与对象一起返回消息,您可以定义一个新类,例如

public class RestResponse<T>{

private String message;
private T obj;

public RestResponse(String message, T obj){
this.message = message;
this.obj = obj;
}

}

然后在你的 Rest Controller 中你可以这样做

Movie result =  movieService.createMovie(movie);

return new RestResponse<Movie>(String.format("%s was added to your watchlist", movie.name ), result);

关于java - 创建对象时向 Angular 返回状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47622979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com