设置方法的返回值
常用于以下情况:
<Object>
/<?>
/<*>
API:
/**
* Mock Apis
*/
@RestController
@RequestMapping(value = "mock")
public class MockCtrl {
/**
* Mock String
* @ignore
*/
@GetMapping("/string")
public String mockString() {
return Result.success("mock string");
}
}
这个方法返回的是
String
, 但实际响应的是com.itangcent.common.dto.Result<String>
, 所以额外做如下配置
method.return=groovy: "com.itangcent.common.dto.Result<" + it.returnType() +">"
API:
/**
* 通过`HttpServletResponse`写入响应
*/
@RequestMapping(value = "/writeByResponse", method = RequestMethod.GET)
public void writeByResponse(HttpServletResponse response) throws IOException {
UserInfo userInfo = new UserInfo();
userInfo.setId(1l);
userInfo.setName("Tom");
userInfo.setAge(25);
response.getOutputStream().write(new Gson().toJson(Result.success(userInfo)).getBytes(Charsets.UTF_8));
}
这个方法返回的是
void
,但实际响应的是Result<UserInfo>
, 所以需要通过额外的途径来表明此API
的实际响应.
简单的,可做如下配置:
method.return=#real_return
使用方法:
/**
* @real_return com.itangcent.common.dto.Result<com.itangcent.common.model.UserInfo>
*/
为了方便书写, 我们可以尝试使用{@link}
来设置实际响应类型, 利用helper.resolveLink
来解析
例如做如下配置:
method.return[#real_return]=groovy: helper.resolveLink(it.doc("real_return"))
使用方法:
/**
* @real_return {@link Result<UserInfo>}
*/
更进一步的, 如果所有的响应都由com.itangcent.common.dto.Result
包装
做如下配置:
method.return[#real_return]=groovy: "com.itangcent.common.dto.Result<" + helper.resolveLink(it.doc("real_return")) +">"
使用方法:
/**
* @real_return {@link UserInfo}
*/