NetBeans から、組み込みのウィザードを使用して (jersey を使用して) 新しい REST Web サービスを作成しました。コンテナ リソース クラスでは、スタブを作成し、
@POST
@Consumes("application/json")
@Produces("application/json")
public Response postJson(Identity identity) {
identities.addIdentity(identity);
return Response.status(Status.OK).entity(identity).build();
}
これに投稿するにはどうすればよいですか?私の理解では、name=val のペアを投稿する必要があります。ジャージはここで何を期待していますか?curlを使用してこれにjsonを投稿するにはどうすればよいですか? これが私が試したことです、
#!/bin/bash
DATA="{ \"id\": \"$1\", \"vcard\": \"$2\", \"location\": { \"latitude\": \"$3\", \"longitude\": \"$4\" } }"
echo "posting: $DATA"
HEADER='Content-Type:application/json'
URL='http://localhost:8080/contacthi-proximity-service/resources/is'
curl --data-binary "${DATA}" -H "${HEADER}" "${URL}"
これを投稿して、入ってくる ID オブジェクトを見ると、すべてのフィールドが null になっていますか? 私のjsonが間違っていると思われます。オブジェクトをコンテナに手動で追加して get を作成すると、この結果が表示されます。
{"identities":{"id":"Foo Bar","vcard":"VCARD123","location":{"latitude":"-1.0","longitude":"-1.0"}}}
同じものを投稿しようとすると、すべてのフィールドがすべて null になります。私も試しましたが、
{"id":"Foo Bar","vcard":"VCARD123","location":{"latitude":"-1.0","longitude":"-1.0"}}
同じ結果です。