我如何仅从REST-Backend的Angular Frontend中接收字符串

时间:2019-04-04 12:56:04

标签: java angular rest jersey observable

对于我的应用程序,我在Java后端中计算一些值。我唯一想做的就是在我的Angular前端中接收这个String,但是我在Observable类型中苦苦挣扎。

这是我的后端REST调用,它使用SpringBoot / Jersey批注:

@GET
@Path("/calculate/{auftragId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String calculateAwWithJSON(@PathParam("auftragId") String auftragId) {
    restLog("receiving put request /put/auftragId ->> " + auftragId);
    for (AuftragREST anAuftragRepoList : auftragRepoList) {
        if (anAuftragRepoList.getId().replace(" ", "").equals(auftragId)) {
            restLog("successfully calculated AW the requested data!");
            return ObjektprotokollCalculator.calculateAW(anAuftragRepoList).toString();
        }
    }
    return "0";
}

现在我唯一要做的就是在Angular前端中获取该字符串。但是我不知道这如何与Observables一起使用,这就是我的经验:

public getFromHttpClient(url: string, json: any): Observable<string> {
    return this.httpClient.get<string>(`${this.basePath}/${url}/${json.id}`);
}

但是,当我尝试使用它时,它不起作用:

let m: string = this.getFromHttpClient("auftrag/calculate", this.myObject).subscribe();

最简单的方法是什么?我究竟做错了什么?我找不到类似的示例,每个人总是只显示如何使用Arrays,而没有一个示例显示仅针对单个字符串是如何完成的。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这是执行此操作的正确语法:

this.getFromHttpClient("auftrag/calculate", this.myObject).subscribe((response) => let m: string = response;);

答案 1 :(得分:0)

您需要向订阅添加功能:

let m: string;
this.getFromHttpClient("auftrag/calculate", this.myObject).subscribe((result: string) => {m = result;});