我没有找到一个示例详细说明接受post请求的方法的格式以及相应的功能测试。以下是我正在做的事情。控制器方法获取null json字符串值。我查看了binder选项,但我觉得下面的方法很简单,并尝试使其工作。我错过了一些微不足道的事情吗?
播放v 1.2.4
路由
/v1/xyzs Application.createXyz(format:'json')
控制器
public static void createXyz(String xyzJson)
{
Xyz xyz = new Gson().fromJson(xyzJson, Xyz.class);
Xyz savedXyz = xyz.save();
render();
}
功能测试
@Test
public void createXyzTest()
{
Xyz xyz = new Xyz("id", 12345, "Summary", "Main");
String body = new Gson().toJson(xyz);
Response response = POST("/v1/xyzs", "application/json", body);
assertStatus(201, response);
}
更新 功能测试中的代码如下。
Xyz xyz = new Xyz("id", 12345, "Summary", "Main");
String body = new Gson().toJson(xyz);
Map<String,String> params = new HashMap<String,String>();
params.put("xyzJson", body);
Response response = POST("/v1/xyzs",params);
答案 0 :(得分:1)
如果String body = String.format("{\"xyzJson\": %s}", new Gson().toJson(xyz));