Custom media types rest (#946)

* Custom Media Types for REST

* add test, add DTO, remove example of API versioning to make example simpler

* client accept only that custom-media type

* remove not needed new_line

* leave custom media type on class level

* do not need content type header

* GET do not need content-Type

* add liveTest for custom Content type

* Merge branch 'master' of https://github.com/eugenp/tutorials into Custom_media_types_rest

# Conflicts:
#	spring-rest/src/main/java/org/baeldung/web/controller/mediatypes/CustomMediaTypeController.java
#	spring-rest/src/main/java/org/baeldung/web/dto/BaeldungItem.java
#	spring-rest/src/test/java/org/baeldung/web/controller/mediatypes/CustomMediaTypeControllerTest.java

* test name proper given_when_then pattern

* add custom content-type 'application/json-p'

* import proper class

* proper test name

* proper API migraton test, SecondBaeldungItem breaks backward compatibility

* add proper endpoint
This commit is contained in:
Tomasz Lelek
2016-12-30 22:15:55 +01:00
committed by Eugen
parent 4305025d42
commit 4d8949f659
4 changed files with 13 additions and 16 deletions
@@ -19,7 +19,7 @@ public class CustomMediaTypeControllerLiveTest {
given()
.accept("application/vnd.baeldung.api.v1+json")
.when()
.get(URL_PREFIX + "/public/api/endpoint")
.get(URL_PREFIX + "/public/api/items/1")
.then()
.contentType(ContentType.JSON).and().statusCode(200);
}
@@ -30,7 +30,7 @@ public class CustomMediaTypeControllerLiveTest {
given()
.accept("application/vnd.baeldung.api.v2+json")
.when()
.get(URL_PREFIX + "/public/api/endpoint")
.get(URL_PREFIX + "/public/api/items/2")
.then()
.contentType(ContentType.JSON).and().statusCode(200);
}
@@ -32,11 +32,11 @@ public class CustomMediaTypeControllerTest {
@Test
public void givenServiceUrl_whenGetWithProperAcceptHeaderFirstAPIVersion_thenReturn200() throws Exception {
mockMvc.perform(get("/public/api/endpoint").accept("application/vnd.baeldung.api.v1+json")).andExpect(status().isOk());
mockMvc.perform(get("/public/api/items/1").accept("application/vnd.baeldung.api.v1+json")).andExpect(status().isOk());
}
@Test
public void givenServiceUrl_whenGetWithProperAcceptHeaderSecondVersion_thenReturn200() throws Exception {
mockMvc.perform(get("/public/api/endpoint").accept("application/vnd.baeldung.api.v2+json")).andExpect(status().isOk());
mockMvc.perform(get("/public/api/items/2").accept("application/vnd.baeldung.api.v2+json")).andExpect(status().isOk());
}
}