美文网首页开发随笔
使用SpringMVC编写Restful API—GET

使用SpringMVC编写Restful API—GET

作者: 8813d76fee36 | 来源:发表于2017-11-14 16:05 被阅读14次

创建测试用例

  • 创建一个名为UserControllerTest的测试类,并引入MVC测试环境。
    新建测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {

    @Autowired
    private WebApplicationContext webApplicationContext;

    private MockMvc mockMvc;

    @Before
    public void setUp() {
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
    }
}
  • 编写测试用例
    说明:向/user发送GET请求,并且数据格式及编码为application/json;charset=utf-8,期望返回结果集长度为3。
    @Test
    public void whenQuerySuccess() throws Exception {
        mockMvc.perform(
                MockMvcRequestBuilders.get("/user")
                        .contentType(MediaType.APPLICATION_JSON_UTF8)) //设置数据格式及编码为JSON;UTF-8
                .andExpect(MockMvcResultMatchers.status().isOk()) //期望结果为成功
                .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)); //期望返回数据的长度为3
    }
GET测试用例
  • 新建UserController

常用注解

  • @RestController 标明此Controller提供RestAPI
  • @RequestMapping及其变体(@GetMapping、@PostMapping、 @PutMapping、@DeleteMapping)映射http的url请求到java方法。
  • @RequestParam 映射请求参数到java方法参数
  • @PathVariable 映射URL片段到java方法的参数
  • @JsonView 控制json输出内容

其中@RestController注解为@Controller和@ResponseBody的组合注解。


@RestController注解

@RequestParam注解用法

用于将请求参数映射到java方法的参数上。


@RequestParam
  • required
    用户标示该参数是否为必须,默认为true。当该值为true时请求参数中必须包含该注解对应的字段。
  • name
    用于将请求参数字段名与java方法参数名相匹配,默认该值与java方法参数名相同。上图中该字段值为nickName,则请求中字段名为nickName的值将会赋值给java方法中的username参数上。
  • defaultValue
    默认值。当required为false且请求参数中不包含该字段时,默认使用该值。

@PathVariable注解用法

用于将请求片段映射到java方法的参数上


@PathVariable
  • 为参数添加正则表达式
    使用正则表达式限制参数形式,如id的值只能是数字。在参数id写冒号+正则表达式


    使用正则表达式

使用@JsonView控制JSON输出

  1. 使用接口来声明多个视图。


    UserSimpleView
    UserDetailView

2.在值对象的get方法上指定视图。


image.png

3.在Controller方法上指定视图。


image.png

相关文章

网友评论

    本文标题:使用SpringMVC编写Restful API—GET

    本文链接:https://www.haomeiwen.com/subject/ffhfvxtx.html