Spring Boot構築Restful APIとテスト
注釈の紹介
@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