@Configuration 文件
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); // 注册
return new CorsFilter(source);
}
@Bean
public ApiErrorController ApiErrorController() {
return new ApiErrorController();
}
参数类
@Data
public class Param {
// FIXME 如何走国际化?
@NotBlank(message = "{name.notblank}")
// @NotBlank(message = "名字不能为空")
private String name;
}
资源文件
资源文件在src/main/resources目录下
messages_zh_CN.properties
name.notblank=\u540D\u5B57\u4E0D\u80FD\u4E3A\u7A7A
messages_en_US.properties
name.notblank=name must not be blank
controller
@Api(tags = "国际化测试")
@Slf4j
@RestController
@RequestMapping("/free/i18n")
public class I18nController {
@PostMapping("/post")
public String post(@Validated @RequestBody Param param) {
return "ok";
}
}
测试
英文错误信息
curl -X POST -H "Accept-Language: en-US" -H "Content-Type: application/json;charset=utf-8" -d '{}' http://127.0.0.1:6118/free/i18n/post
中文错误信息
curl -X POST -H "Accept-Language: zh-CN" -H "Content-Type: application/json;charset=utf-8" -d '{}' http://127.0.0.1:6118/free/i18n/post