1.关于SpringBoot在controller的注解,完成http交互路径以及数据请求中遇到的问题:
(1)如果一个方法中单是参数请求,没有json实体的请求,则不需要写:
consumes = arrayOf(MediaType.APPLICATION_JSON_UTF8_VALUE)
上面这句代表,接受请求的数据类型为json,通常用在用json传实体的时候。
与其相对应的:
produces = arrayOf(MediaType.APPLICATION_JSON_UTF8_VALUE)
表示输出的格式为json。
(2)在Spring Rest Docs 和 swagger2 结合 自动生成api的过程中:
在Controller的某个功能方法上的api注解:
@ApiOperation(value = "findXXX", notes = "查找")
这里的value ,需要和测试类中的andDo中的
@Test
fun update() {
val uid= "XXXXXXXXXXXXX"
val request = put("/users/$uid")
.param("Name", "zy")
this.mockMvc.perform(request)
.andExpect(status().isOk)
.andDo(print())
.andDo(document("updateEffectivity", preprocessResponse(prettyPrint())))
}
document中的值相同,这个document中的名称是输出到测试片段的名称,如果和api中的value不一致,会导致测试的response和Request不会添加到api中。
2.关于 空字符串 和 null的区别及应用
在kotlin中,我们判空的方式很简单:
userName?.let{userName = "zy"}
但是这里的“?.”并不能对空字符串进行排除,它只能去除掉值为 null的情况。
处理空字符串 使用 isBlank()
同时处理null和空字符串的情况 使用:.isNullOrBlank()
3.关于kotlin中的过滤器的使用
(1)取出userName的值为zy的第一个用户
users.filter{it.userName != "zy"}.first
等于
users.first{it.userName != "zy"}