美文网首页开发随笔
使用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