Spring Boot構築Restful APIとテスト

3751 ワード

  • 注釈紹介
  • controller例
  • ユニット試験
  • 実行プログラム
  • 参考資料
  • プロジェクトを作成する際にウェブモジュールが選択されていますので、スプリングmvcを使用することができます.
    注釈の紹介
    @Controller:クラスを修飾し、http要求の対象を作成する
    @RestitController:Spring 4の後に加入する注釈は、@Controllerの中でjsonに戻るには@ResponseBodyが必要で、直接@RestitControllerで@Controllerを置換すれば@Controllerを再構成する必要がない@ResponseBodyは、デフォルトでjsonフォーマットに戻ります.
    controlerの例
    ここでは、restful controlを使って、戻ってきた内容はjsonです.
    
    @RestController
    @RequestMapping(value="/users")
    public class MyRestController {
    
        @RequestMapping(value="/{user}", method= RequestMethod.GET)
        public User getUser(@PathVariable Long user) {
            // ...
            User user1 = new User();
            user1.setId(user);
            user1.setName("liu");
            user1.setAge(20);
            return user1;
        }
    
        @RequestMapping(value="/{user}", method=RequestMethod.DELETE)
        public User deleteUser(@PathVariable Long user) {
            // ...
            User user1 = new User();
            user1.setId(user);
            user1.setName("liu");
            return user1;
        }
    
    }
    ユニットテスト
    @RunWith(SpringRunner.class)
    @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
    public class MyRestControllerTest {
    
        @Autowired
        private TestRestTemplate restTemplate;
    
        @Autowired
        private MyRestController myRestController;
    
        @Test
        public void userTest() {
    
            User user1 = restTemplate.getForObject("/users/2", User.class);
            System.out.println(user1.toString());
    
            User user = this.myRestController.getUser(1L);
            System.out.println(user.toString());
    
        }
    }
    プログラムを実行
    ウェブアプリケーションを起動し、コマンドを実行します.
    mvn spring-boot:run
    
    ブラウザにhttp://localhost:8080/users/1を入力すると、その結果が表示されます.
    {"id":1,"name":"liu","age":20}
    プロジェクトの例:https://github.com/lzx2011/springBootPractice
    参考資料
    https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html