私はRestESTY JAX-RSサービスを呼び出すAngular2クライアントを持っています。私が得ようとしているのはJSON形式の "Hello World"メッセージです。私はJSONオブジェクトを期待していたが、私は次のような構造を持つ私の応答を得る:RestEasy - JSONレスポンス - Angular2クライアントから、JSONオブジェクトを取得する方法
_body: "{"message":"Hello World!!"}"
headers: t
ok: true
status: 200
statusText: "OK"
type: 2
url: "http://localhost:8080/helloapp/rest/hello/world"
__proto__: ...
私の質問は、それがあるべき姿ということですか?
私は、私が応答から直接JSONオブジェクトにアクセスできると思っていました。私が実際に持っている
this.service.getHello()
.then(result => {
console.log(JSON.parse(result)); //{message: "Hello World"}
this.message = JSON.parse(result).message;
});
しかし、のようなものは_bodyからそれを得るために:それはそれを変更する方法があり、RESTEasyの設定の事
this.service.getHello()
.then(result => {
this.message = JSON.parse(result._body).message;
console.log(this.message);//Hello World
});
ですか?
それとも
は、私はいつも自分のデータと私の応答フィールド_bodyを持っていることを考慮しなければならない、それはデフォルトの応答構造ですか?最終的な検討のための
、ここに私のバックエンドのコードは次のとおりです。
HelloWorldのサービス:
@Path("/hello")
@Produces({ "application/json" })
@Consumes({ "application/json" })
public class HelloWorld {
public HelloWorld() {}
@GET
@Path("/world")
public Message getHello(){
return new Message("Hello World!!");
}
}
マイRESTEasyのバージョンがWildfly 10.1.0.Finalに3.1.1.Finalランニングで
Angular HTTPModuleを使用しているので、実際には応答オブジェクトが作成されていることに気付きませんでした。私は私のサービスクラス 'rxjs/Rx'でも使っています。これをObservableの代わりにPromiseに変換すると、次のようになります。 'return this.http.get(this.baseURL + 'hello/world')。toPromise();しかしObservablesを使うのは正しい方法ですか? –
"正しい"方法について私は知らない。それは単なる好みかもしれません。しかし、あなたは確かにObservable演算子を使用してから約束をすることになります(これはあなたが選んだものです) –