Rest 播放接受POST的框架控制器方法

Rest 播放接受POST的框架控制器方法,rest,post,playframework,Rest,Post,Playframework,我没有找到一个例子来详细说明接受post请求的方法的格式以及相应的功能测试。下面是我正在做的。控制器方法获取空json字符串值。我查看了活页夹选项,但我觉得下面的方法很简单,并且正在努力使其生效。我错过了一些琐碎的事情吗 播放v1.2.4 路线 /v1/xyzs Application.createXyz(format:'json') 控制器 public static void createXyz(String xyzJson) { Xyz xy

我没有找到一个例子来详细说明接受post请求的方法的格式以及相应的功能测试。下面是我正在做的。控制器方法获取空json字符串值。我查看了活页夹选项,但我觉得下面的方法很简单,并且正在努力使其生效。我错过了一些琐碎的事情吗

播放v1.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);
Xyz Xyz=new Xyz(“id”,12345,“Summary”,“Main”);
String body=new Gson().toJson(xyz);
Map params=新的HashMap();
参数put(“xyzJson”,body);
响应=POST(“/v1/xyzs”,参数);

如果
String body=String.format(“{\“xyzJson\”:%s}”,new Gson().toJson(xyz))

我将此添加到测试中,但xyzJson的控制器仍然为空。回过头来看,您发布的上述代码也应该有效。让我稍后再确认