使用SpringMVC开发Restful风格的API

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a2011102394/article/details/80669024

1、编写针对RestfulAPI的测试用例

  • 添加测试的依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    
  • 编写测试用例

    @RunWith(SpringRunner.class)//如何运行测试用例
    @SpringBootTest//表明这个类是一个测试类
    public class UserControllerTest {
    
        /**
         * Spring IOC 容器
         */
        @Autowired
        private WebApplicationContext wac;
    
        /**
         * 虚拟一个MVC运行环境,不会真正地启动tomcat
         */
        private MockMvc mockMvc;
    
        /**
         * 在每一个测试方法执行之前先执行,实例化一个mockMVC
         * @throws Exception
         */
        @Before
        public void setUp() throws Exception {
    
            mockMvc=MockMvcBuilders.webAppContextSetup(wac).build();
        }
    
        @Test
        public void whenQuerySuccess() throws Exception {
            mockMvc.perform(MockMvcRequestBuilders.get("/user")
                    .contentType(MediaType.APPLICATION_JSON_UTF8))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3));
        }
    
    }
    

    参考 https://www.cnblogs.com/rancho-blog/p/7011176.html

2、使用注解声明RestfulAPI

get请求相关的注解

  • @RestController

    等价于@Controller+@ResponseBody 表明此Controller提供RestAPI
    
  • @RequestMapping及其变体

    映射http请求url到java方法
    
  • @RequestParam

    映射请求参数到java方法的参数
    
  • @PageableDefault

    指定分页参数的默认值
    需要依赖spring-data
    
     <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
    </dependency>
    
  • @PathVariable

    映射url片段到java方法的参数中
    
    在url声明中使用正则表达式
    
  • @JsonView控制json的内容输出

    1. 使用接口来声明多个视图
    2. 在值对象的get方法中指定视图
    3. 在Controller方法上指定视图
  • json-path的使用

    官方文档
    https://github.com/json-path/JsonPath

post请求相关的注解

  • @RequestBody 映射请求体到java方法的参数
  • 日期类型的处理

    后台统一为时间戳,具体的展示由不同的客户端进行展示
    
  • @Valid 注解和BindingResult 验证请求参数的合法性并校验结果

    1. 常用的验证注解
    2. 自定义消息
    3. 自定义校验注解

    参考https://www.cnblogs.com/mr-yang-localhost/p/7812038.html

猜你喜欢

转载自blog.csdn.net/a2011102394/article/details/80669024