BAEL-1649 Difference between @Controller and @RestController (#3885)
* Difference between @Controller and @RestController * Difference between @Controller and @RestController - test fix
This commit is contained in:
parent
8441d41fdc
commit
9734a47ea6
|
@ -0,0 +1,33 @@
|
||||||
|
package com.baeldung.model;
|
||||||
|
|
||||||
|
public class Book {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
private String author;
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAuthor() {
|
||||||
|
return author;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAuthor(String author) {
|
||||||
|
this.author = author;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.baeldung.web.controller;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
|
import com.baeldung.model.Book;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("books")
|
||||||
|
public class SimpleBookController {
|
||||||
|
|
||||||
|
@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = "application/json")
|
||||||
|
public @ResponseBody Book getBook(@PathVariable int id) {
|
||||||
|
return findBookById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Book findBookById(int id) {
|
||||||
|
Book book = null;
|
||||||
|
if (id == 42) {
|
||||||
|
book = new Book();
|
||||||
|
book.setId(id);
|
||||||
|
book.setAuthor("Douglas Adamas");
|
||||||
|
book.setTitle("Hitchhiker's guide to the galaxy");
|
||||||
|
}
|
||||||
|
return book;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.baeldung.web.controller;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import com.baeldung.model.Book;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("books-rest")
|
||||||
|
public class SimpleBookRestController {
|
||||||
|
|
||||||
|
@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = "application/json")
|
||||||
|
public Book getBook(@PathVariable int id) {
|
||||||
|
return findBookById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Book findBookById(int id) {
|
||||||
|
Book book = null;
|
||||||
|
if (id == 42) {
|
||||||
|
book = new Book();
|
||||||
|
book.setId(id);
|
||||||
|
book.setAuthor("Douglas Adamas");
|
||||||
|
book.setTitle("Hitchhiker's guide to the galaxy");
|
||||||
|
}
|
||||||
|
return book;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.baeldung.web.controller;
|
||||||
|
|
||||||
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.test.web.servlet.MockMvc;
|
||||||
|
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||||
|
|
||||||
|
import com.baeldung.web.controller.SimpleBookController;
|
||||||
|
|
||||||
|
public class SimpleBookControllerTest {
|
||||||
|
|
||||||
|
private MockMvc mockMvc;
|
||||||
|
private static final String CONTENT_TYPE = "application/json;charset=UTF-8";
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
this.mockMvc = MockMvcBuilders.standaloneSetup(new SimpleBookController()).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenBookId_whenMockMVC_thenVerifyResponse() throws Exception {
|
||||||
|
this.mockMvc
|
||||||
|
.perform(get("/books/42"))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(content().contentType(CONTENT_TYPE))
|
||||||
|
.andExpect(jsonPath("$.id").value(42));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.baeldung.web.controller;
|
||||||
|
|
||||||
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.test.web.servlet.MockMvc;
|
||||||
|
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||||
|
|
||||||
|
import com.baeldung.web.controller.SimpleBookController;
|
||||||
|
|
||||||
|
public class SimpleBookRestControllerTest {
|
||||||
|
|
||||||
|
private MockMvc mockMvc;
|
||||||
|
private static final String CONTENT_TYPE = "application/json;charset=UTF-8";
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
this.mockMvc = MockMvcBuilders.standaloneSetup(new SimpleBookController()).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenBookId_whenMockMVC_thenVerifyResponse() throws Exception {
|
||||||
|
this.mockMvc
|
||||||
|
.perform(get("/books/42"))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(content().contentType(CONTENT_TYPE))
|
||||||
|
.andExpect(jsonPath("$.id").value(42));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue