diff --git a/pom.xml b/pom.xml index f29fe4f248..db7ec25a5c 100644 --- a/pom.xml +++ b/pom.xml @@ -805,7 +805,7 @@ spring-reactive-kotlin spring-reactor spring-remoting - spring-rest + spring-rest-http spring-rest-angular spring-rest-compress spring-rest-testing @@ -1411,7 +1411,7 @@ spring-reactive-kotlin spring-reactor spring-remoting - spring-rest + spring-rest-http spring-rest-angular spring-rest-compress spring-rest-testing diff --git a/spring-rest-http/README.md b/spring-rest-http/README.md new file mode 100644 index 0000000000..51f5ed4000 --- /dev/null +++ b/spring-rest-http/README.md @@ -0,0 +1,14 @@ +## Spring REST HTTP + +This module contains articles about HTTP in REST APIs with Spring + +### The Course +The "REST With Spring" Classes: http://bit.ly/restwithspring + +### Relevant Articles: + +- [Guide to UriComponentsBuilder in Spring](https://www.baeldung.com/spring-uricomponentsbuilder) +- [How to Set a Header on a Response with Spring 5](https://www.baeldung.com/spring-response-header) - The tests contained for this article rely on the sample application within the [spring-resttemplate](/spring-resttemplate) module +- [Returning Custom Status Codes from Spring Controllers](https://www.baeldung.com/spring-mvc-controller-custom-http-status-code) +- [Spring @RequestMapping](https://www.baeldung.com/spring-requestmapping) +- [Guide to DeferredResult in Spring](https://www.baeldung.com/spring-deferred-result) \ No newline at end of file diff --git a/spring-rest-http/pom.xml b/spring-rest-http/pom.xml new file mode 100644 index 0000000000..c5c6b8d44c --- /dev/null +++ b/spring-rest-http/pom.xml @@ -0,0 +1,52 @@ + + + 4.0.0 + spring-rest-http + 0.1-SNAPSHOT + spring-rest-http + war + + + com.baeldung + parent-boot-2 + 0.0.1-SNAPSHOT + ../parent-boot-2 + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework + spring-oxm + + + com.thoughtworks.xstream + xstream + ${xstream.version} + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-devtools + + + org.springframework.boot + spring-boot-starter-test + + + + + + + 1.4.9 + + + diff --git a/spring-rest-http/src/main/java/com/baeldung/config/MvcConfig.java b/spring-rest-http/src/main/java/com/baeldung/config/MvcConfig.java new file mode 100644 index 0000000000..ea2c536757 --- /dev/null +++ b/spring-rest-http/src/main/java/com/baeldung/config/MvcConfig.java @@ -0,0 +1,51 @@ +package com.baeldung.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.MediaType; +import org.springframework.http.converter.HttpMessageConverter; + +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; + +import org.springframework.oxm.xstream.XStreamMarshaller; +import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import java.text.SimpleDateFormat; +import java.util.List; + +/* + * Please note that main web configuration is in src/main/webapp/WEB-INF/api-servlet.xml + */ +@Configuration +@EnableWebMvc +@ComponentScan({ "com.baeldung.web", "com.baeldung.requestmapping" }) +public class MvcConfig implements WebMvcConfigurer { + + public MvcConfig() { + super(); + } + + // + + @Override + public void configureMessageConverters(final List> messageConverters) { + final Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); + builder.indentOutput(true) + .dateFormat(new SimpleDateFormat("dd-MM-yyyy hh:mm")); + + } + + + @Override + public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { + configurer.defaultContentType(MediaType.APPLICATION_JSON); + } + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**"); + } +} diff --git a/spring-rest/src/main/java/com/baeldung/controllers/DeferredResultController.java b/spring-rest-http/src/main/java/com/baeldung/controllers/DeferredResultController.java similarity index 100% rename from spring-rest/src/main/java/com/baeldung/controllers/DeferredResultController.java rename to spring-rest-http/src/main/java/com/baeldung/controllers/DeferredResultController.java diff --git a/spring-rest-simple/src/main/java/com/baeldung/requestmapping/BarMappingExamplesController.java b/spring-rest-http/src/main/java/com/baeldung/requestmapping/BarMappingExamplesController.java similarity index 100% rename from spring-rest-simple/src/main/java/com/baeldung/requestmapping/BarMappingExamplesController.java rename to spring-rest-http/src/main/java/com/baeldung/requestmapping/BarMappingExamplesController.java diff --git a/spring-rest-simple/src/main/java/com/baeldung/requestmapping/BazzNewMappingsExampleController.java b/spring-rest-http/src/main/java/com/baeldung/requestmapping/BazzNewMappingsExampleController.java similarity index 100% rename from spring-rest-simple/src/main/java/com/baeldung/requestmapping/BazzNewMappingsExampleController.java rename to spring-rest-http/src/main/java/com/baeldung/requestmapping/BazzNewMappingsExampleController.java diff --git a/spring-rest-simple/src/main/java/com/baeldung/requestmapping/FooMappingExamplesController.java b/spring-rest-http/src/main/java/com/baeldung/requestmapping/FooMappingExamplesController.java similarity index 100% rename from spring-rest-simple/src/main/java/com/baeldung/requestmapping/FooMappingExamplesController.java rename to spring-rest-http/src/main/java/com/baeldung/requestmapping/FooMappingExamplesController.java diff --git a/spring-rest-simple/src/main/java/com/baeldung/web/controller/status/ExampleController.java b/spring-rest-http/src/main/java/com/baeldung/web/controller/status/ExampleController.java similarity index 100% rename from spring-rest-simple/src/main/java/com/baeldung/web/controller/status/ExampleController.java rename to spring-rest-http/src/main/java/com/baeldung/web/controller/status/ExampleController.java diff --git a/spring-rest-simple/src/main/java/com/baeldung/web/controller/status/ForbiddenException.java b/spring-rest-http/src/main/java/com/baeldung/web/controller/status/ForbiddenException.java similarity index 100% rename from spring-rest-simple/src/main/java/com/baeldung/web/controller/status/ForbiddenException.java rename to spring-rest-http/src/main/java/com/baeldung/web/controller/status/ForbiddenException.java diff --git a/spring-rest-http/src/main/java/com/baeldung/web/dto/Bazz.java b/spring-rest-http/src/main/java/com/baeldung/web/dto/Bazz.java new file mode 100644 index 0000000000..861b4009b5 --- /dev/null +++ b/spring-rest-http/src/main/java/com/baeldung/web/dto/Bazz.java @@ -0,0 +1,22 @@ +package com.baeldung.web.dto; + +public class Bazz { + + + public String id; + public String name; + + public Bazz(String id){ + this.id = id; + } + public Bazz(String id, String name) { + this.id = id; + this.name = name; + } + + @Override + public String toString() { + return "Bazz [id=" + id + ", name=" + name + "]"; + } + +} diff --git a/spring-rest-http/src/main/java/com/baeldung/web/dto/Foo.java b/spring-rest-http/src/main/java/com/baeldung/web/dto/Foo.java new file mode 100644 index 0000000000..5a54539927 --- /dev/null +++ b/spring-rest-http/src/main/java/com/baeldung/web/dto/Foo.java @@ -0,0 +1,45 @@ +package com.baeldung.web.dto; + +import com.thoughtworks.xstream.annotations.XStreamAlias; + +@XStreamAlias("Foo") +public class Foo { + private long id; + private String name; + + public Foo() { + super(); + } + + public Foo(final String name) { + super(); + + this.name = name; + } + + public Foo(final long id, final String name) { + super(); + + this.id = id; + this.name = name; + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + +} \ No newline at end of file diff --git a/spring-rest-simple/src/test/java/com/baeldung/requestmapping/BazzNewMappingsExampleIntegrationTest.java b/spring-rest-http/src/test/java/com/baeldung/requestmapping/BazzNewMappingsExampleIntegrationTest.java similarity index 100% rename from spring-rest-simple/src/test/java/com/baeldung/requestmapping/BazzNewMappingsExampleIntegrationTest.java rename to spring-rest-http/src/test/java/com/baeldung/requestmapping/BazzNewMappingsExampleIntegrationTest.java diff --git a/spring-rest/src/test/java/com/baeldung/responseheaders/ResponseHeaderLiveTest.java b/spring-rest-http/src/test/java/com/baeldung/responseheaders/ResponseHeaderLiveTest.java similarity index 100% rename from spring-rest/src/test/java/com/baeldung/responseheaders/ResponseHeaderLiveTest.java rename to spring-rest-http/src/test/java/com/baeldung/responseheaders/ResponseHeaderLiveTest.java diff --git a/spring-rest/src/test/java/com/baeldung/uribuilder/SpringUriBuilderIntegrationTest.java b/spring-rest-http/src/test/java/com/baeldung/uribuilder/SpringUriBuilderIntegrationTest.java similarity index 100% rename from spring-rest/src/test/java/com/baeldung/uribuilder/SpringUriBuilderIntegrationTest.java rename to spring-rest-http/src/test/java/com/baeldung/uribuilder/SpringUriBuilderIntegrationTest.java diff --git a/spring-rest-simple/src/test/java/com/baeldung/web/controller/status/ExampleControllerIntegrationTest.java b/spring-rest-http/src/test/java/com/baeldung/web/controller/status/ExampleControllerIntegrationTest.java similarity index 100% rename from spring-rest-simple/src/test/java/com/baeldung/web/controller/status/ExampleControllerIntegrationTest.java rename to spring-rest-http/src/test/java/com/baeldung/web/controller/status/ExampleControllerIntegrationTest.java diff --git a/spring-rest-simple/README.md b/spring-rest-simple/README.md index 5e92865cfa..1ceb83b7a7 100644 --- a/spring-rest-simple/README.md +++ b/spring-rest-simple/README.md @@ -4,12 +4,10 @@ This module contains articles about REST APIs in Spring ## Relevant articles: -- [Guide to UriComponentsBuilder in Spring](https://www.baeldung.com/spring-uricomponentsbuilder) -- [Returning Custom Status Codes from Spring Controllers](https://www.baeldung.com/spring-mvc-controller-custom-http-status-code) -- [Spring RequestMapping](https://www.baeldung.com/spring-requestmapping) - [Spring and Apache FileUpload](https://www.baeldung.com/spring-apache-file-upload) - [Test a REST API with curl](https://www.baeldung.com/curl-rest) - [Best Practices for REST API Error Handling](https://www.baeldung.com/rest-api-error-handling-best-practices) +- [Binary Data Formats in a Spring REST API](https://www.baeldung.com/spring-rest-api-with-binary-data-formats) ### NOTE: diff --git a/spring-rest/.gitignore b/spring-rest/.gitignore deleted file mode 100644 index 2661c0de1e..0000000000 --- a/spring-rest/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -*.class - -#folders# -/target -/neoDb* -/data -/spring-boot-runtime/src/main/webapp/WEB-INF/classes -*/META-INF/* - -# Packaged files # -*.jar -*.war -*.ear \ No newline at end of file diff --git a/spring-rest/README.md b/spring-rest/README.md deleted file mode 100644 index 3ea9361169..0000000000 --- a/spring-rest/README.md +++ /dev/null @@ -1,17 +0,0 @@ -## Spring REST - -This module contains articles about REST APIs with Spring - -### The Course -The "REST With Spring" Classes: http://bit.ly/restwithspring - -### Relevant Articles: -- [Spring @RequestMapping](https://www.baeldung.com/spring-requestmapping) -- [Returning Custom Status Codes from Spring Controllers](https://www.baeldung.com/spring-mvc-controller-custom-http-status-code) -- [Binary Data Formats in a Spring REST API](https://www.baeldung.com/spring-rest-api-with-binary-data-formats) -- [Guide to UriComponentsBuilder in Spring](https://www.baeldung.com/spring-uricomponentsbuilder) -- [A Custom Media Type for a Spring REST API](https://www.baeldung.com/spring-rest-custom-media-type) -- [HTTP PUT vs HTTP PATCH in a REST API](https://www.baeldung.com/http-put-patch-difference-spring) -- [Guide to DeferredResult in Spring](https://www.baeldung.com/spring-deferred-result) -- [How to Set a Header on a Response with Spring 5](https://www.baeldung.com/spring-response-header) -- [Download an Image or a File with Spring MVC](https://www.baeldung.com/spring-controller-return-image-file) diff --git a/spring-rest/pom.xml b/spring-rest/pom.xml deleted file mode 100644 index 0c3e5f399f..0000000000 --- a/spring-rest/pom.xml +++ /dev/null @@ -1,254 +0,0 @@ - - - 4.0.0 - spring-rest - 0.1-SNAPSHOT - spring-rest - war - - - com.baeldung - parent-boot-2 - 0.0.1-SNAPSHOT - ../parent-boot-2 - - - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-devtools - - - org.springframework.boot - spring-boot-starter-test - - - - - org.springframework - spring-web - - - commons-logging - commons-logging - - - - - org.springframework - spring-webmvc - - - commons-fileupload - commons-fileupload - ${commons-fileupload.version} - - - - - javax.servlet - javax.servlet-api - provided - - - - javax.servlet - jstl - runtime - - - - - com.fasterxml.jackson.core - jackson-databind - - - - com.fasterxml.jackson.dataformat - jackson-dataformat-xml - - - - - com.google.guava - guava - ${guava.version} - - - org.apache.commons - commons-lang3 - - - - - org.hamcrest - hamcrest-core - test - - - org.hamcrest - hamcrest-library - test - - - org.mockito - mockito-core - test - - - org.springframework - spring-test - - - - - com.google.protobuf - protobuf-java - ${protobuf-java.version} - - - com.googlecode.protobuf-java-format - protobuf-java-format - ${protobuf-java-format.version} - - - com.esotericsoftware - kryo - ${kryo.version} - - - com.jayway.jsonpath - json-path - - - - - commons-io - commons-io - ${commons-io.version} - - - - io.rest-assured - rest-assured - - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - - - - spring-rest - - - src/main/resources - true - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - org.apache.maven.plugins - maven-war-plugin - - - - - - - - live - - - - org.codehaus.cargo - cargo-maven2-plugin - - - start-server - pre-integration-test - - start - - - - stop-server - post-integration-test - - stop - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - integration-test - - test - - - - none - - - **/*LiveTest.java - - - cargo - - - - - - - - - - - - - 1.3.2 - 4.0.0 - 1.4 - 3.1.0 - - - 20.0 - - - 1.6.0 - 3.0.4 - - false - - 2.2.0 - 3.5.11 - 3.1.0 - 4.5.2 - com.baeldung.sampleapp.config.MainApplication - - - diff --git a/spring-rest/src/main/java/com/baeldung/controllers/ViewController.java b/spring-rest/src/main/java/com/baeldung/controllers/ViewController.java deleted file mode 100644 index 8eab0ce6da..0000000000 --- a/spring-rest/src/main/java/com/baeldung/controllers/ViewController.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.baeldung.controllers; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; - -@Controller -public class ViewController { - - @GetMapping("/") - public String welcome() { - return "index"; - } - -} diff --git a/spring-rest/src/main/resources/application.properties b/spring-rest/src/main/resources/application.properties deleted file mode 100644 index dd7e4e2f2d..0000000000 --- a/spring-rest/src/main/resources/application.properties +++ /dev/null @@ -1,2 +0,0 @@ -server.port= 8082 -server.servlet.context-path=/spring-rest \ No newline at end of file diff --git a/spring-rest/src/main/resources/com/baeldung/produceimage/data.txt b/spring-rest/src/main/resources/com/baeldung/produceimage/data.txt deleted file mode 100644 index 3cd18170c0..0000000000 --- a/spring-rest/src/main/resources/com/baeldung/produceimage/data.txt +++ /dev/null @@ -1 +0,0 @@ -This is a sample file containing text data \ No newline at end of file diff --git a/spring-rest/src/main/resources/com/baeldung/produceimage/image.jpg b/spring-rest/src/main/resources/com/baeldung/produceimage/image.jpg deleted file mode 100644 index 0262656a33..0000000000 Binary files a/spring-rest/src/main/resources/com/baeldung/produceimage/image.jpg and /dev/null differ diff --git a/spring-rest/src/main/resources/com/baeldung/produceimage/images/favicon.ico b/spring-rest/src/main/resources/com/baeldung/produceimage/images/favicon.ico deleted file mode 100644 index 64105ac11c..0000000000 Binary files a/spring-rest/src/main/resources/com/baeldung/produceimage/images/favicon.ico and /dev/null differ diff --git a/spring-rest/src/main/resources/logback.xml b/spring-rest/src/main/resources/logback.xml deleted file mode 100644 index 9f48d36486..0000000000 --- a/spring-rest/src/main/resources/logback.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-rest/src/main/resources/pacts/test_consumer-test_provider.json b/spring-rest/src/main/resources/pacts/test_consumer-test_provider.json deleted file mode 100644 index c8082798f4..0000000000 --- a/spring-rest/src/main/resources/pacts/test_consumer-test_provider.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "provider": { - "name": "test_provider" - }, - "consumer": { - "name": "test_consumer" - }, - "interactions": [ - { - "description": "GET REQUEST", - "request": { - "method": "GET", - "path": "/pact" - }, - "response": { - "status": 200, - "headers": { - "Content-Type": "application/json" - }, - "body": { - "condition": true, - "name": "tom" - } - }, - "providerStates": [ - { - "name": "test GET" - } - ] - }, - { - "description": "POST REQUEST", - "request": { - "method": "POST", - "path": "/pact", - "headers": { - "Content-Type": "application/json" - }, - "body": { - "name": "Michael" - } - }, - "response": { - "status": 201 - }, - "providerStates": [ - { - "name": "test POST" - } - ] - } - ], - "metadata": { - "pact-specification": { - "version": "3.0.0" - }, - "pact-jvm": { - "version": "3.5.0" - } - } -} \ No newline at end of file diff --git a/spring-rest/src/test/resources/.gitignore b/spring-rest/src/test/resources/.gitignore deleted file mode 100644 index 83c05e60c8..0000000000 --- a/spring-rest/src/test/resources/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -*.class - -#folders# -/target -/neoDb* -/data -/src/main/webapp/WEB-INF/classes -*/META-INF/* - -# Packaged files # -*.jar -*.war -*.ear \ No newline at end of file diff --git a/spring-rest/src/test/resources/cache/2d9345a30d2cc31bb3091d70a8ef6c18.0 b/spring-rest/src/test/resources/cache/2d9345a30d2cc31bb3091d70a8ef6c18.0 deleted file mode 100644 index e6cfcabe71..0000000000 --- a/spring-rest/src/test/resources/cache/2d9345a30d2cc31bb3091d70a8ef6c18.0 +++ /dev/null @@ -1,24 +0,0 @@ -https://publicobject.com/helloworld.txt -GET -0 -HTTP/1.1 200 OK -10 -Content-Type: text/plain -Content-Length: 1759 -Connection: keep-alive -Accept-Ranges: bytes -Server: nginx/1.10.0 (Ubuntu) -Date: Sat, 08 Dec 2018 13:02:07 GMT -Last-Modified: Tue, 27 May 2014 02:35:47 GMT -ETag: "5383fa03-6df" -OkHttp-Sent-Millis: 1489054646765 -OkHttp-Received-Millis: 1489054646966 - -TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 -4 -MIIFVTCCBD2gAwIBAgIRAKgHBM+t9Yx3v9G9tGZECWkwDQYJKoZIhvcNAQELBQAwgZAxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTYwNAYDVQQDEy1DT01PRE8gUlNBIERvbWFpbiBWYWxpZGF0aW9uIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMTQxMDExMDAwMDAwWhcNMTkxMDEwMjM1OTU5WjBUMSEwHwYDVQQLExhEb21haW4gQ29udHJvbCBWYWxpZGF0ZWQxFDASBgNVBAsTC1Bvc2l0aXZlU1NMMRkwFwYDVQQDExBwdWJsaWNvYmplY3QuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjtgQtvL2kUr6ooHMOq7cxQLGycBW+ri9TGyQkO1lTb66RmcAujENxMh51wKodrveUdbqwpL4g1P49o/Y1fK5IHWAf3vpE8p3RyELY0NRlclRM24dgif/+dgRUUk+0kF3NH6MbB/kve07FMF2FyNDLxtbwJvmrn1MI5c52cpxI24vGcpOZ0VIW7+nS3V+QSrEinvrugAtu8b6Gpg+I8w6rAvmjpfCLmLP0zbjz5ExJzMC0TnR6JMgiqo2TUIyuDM2OuNJpyiluNvlUnzFrlRieg7xexoJxCbqqiOSm076fdT9qNzBp+4MzQ8w8Ofm8tsOnM4FNsz3ifX6KpJdIXfsAQIDAQABo4IB4zCCAd8wHwYDVR0jBBgwFoAUkK9qOpRaC9iQ6hJWc99DtDoo2ucwHQYDVR0OBBYEFAmSn3icQLzlRnBujuf7Y+i7/6HbMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBPBgNVHSAESDBGMDoGCysGAQQBsjEBAgIHMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9kby5jb20vQ1BTMAgGBmeBDAECATBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9SU0FEb21haW5WYWxpZGF0aW9uU2VjdXJlU2VydmVyQ0EuY3JsMIGFBggrBgEFBQcBAQR5MHcwTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9kb2NhLmNvbTAxBgNVHREEKjAoghBwdWJsaWNvYmplY3QuY29tghR3d3cucHVibGljb2JqZWN0LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEATWNaqr7WgumGhxmAm7yluVhVZ/pxPabACY4HDLrYN61KB7XgI1PZIJhQkkreBtmDLIkOQqJxbhePp3z/nOil0QJT7ONcdnYBX0CO8xYhf8c0FM9z7XbLBLta1pkTF/bwgK3VUsGYOskyQ3YdTUrmZq5WrYJvdbP2G5F5eEVIHnXvjKcdFpEY5CmZagYPwVtSioiup+xUzrBibJxpOD9fB6GV8okLgVjIl29Hs1zC++9o3yWC3ep1qzU+m59Pwi7uPoqUA0LXHi4iIEUk8fRhkNlhkte9geOne+fVvm/Rj9MZD3Gtb5qKoqEld6bOSoMlYavj9GCBSNIx2+mGS0Tg6A== -MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEyMDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28ShbXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0nc13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQYMBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgGBmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcBAQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2pmj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBpsP0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMYdVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxGV/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQXj4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5AplBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf+AZxAeKCINT+b72x -MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowgYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYDVQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNwAHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR62RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onrayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIqm1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IEIlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfOKJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPOGHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73gJMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQzbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfjJw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLYUspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9HvxPUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vRpu/xO28QOG8= -MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw56wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= -0 -TLSv1.2 diff --git a/spring-rest/src/test/resources/cache/2d9345a30d2cc31bb3091d70a8ef6c18.1 b/spring-rest/src/test/resources/cache/2d9345a30d2cc31bb3091d70a8ef6c18.1 deleted file mode 100644 index 83db2312f0..0000000000 --- a/spring-rest/src/test/resources/cache/2d9345a30d2cc31bb3091d70a8ef6c18.1 +++ /dev/null @@ -1,39 +0,0 @@ - - \\ // - \\ .ooo. // - .@@@@@@@@@. - :@@@@@@@@@@@@@: - :@@. '@@@@@' .@@: - @@@@@@@@@@@@@@@@@ - @@@@@@@@@@@@@@@@@ - - :@@ :@@@@@@@@@@@@@@@@@. @@: - @@@ '@@@@@@@@@@@@@@@@@, @@@ - @@@ '@@@@@@@@@@@@@@@@@, @@@ - @@@ '@@@@@@@@@@@@@@@@@, @@@ - @@@ '@@@@@@@@@@@@@@@@@, @@@ - @@@ '@@@@@@@@@@@@@@@@@, @@@ - @@@ '@@@@@@@@@@@@@@@@@, @@@ - @@@@@@@@@@@@@@@@@ - '@@@@@@@@@@@@@@@' - @@@@ @@@@ - @@@@ @@@@ - @@@@ @@@@ - '@@' '@@' - - :@@@. - .@@@@@@@: +@@ `@@ @@` @@ @@ - .@@@@'@@@@: +@@ `@@ @@` @@ @@ - @@@ @@@ +@@ `@@ @@` @@ @@ - .@@ @@: +@@ @@@ `@@ @@` @@@@@@ @@@@@@ @@;@@@@@ - @@@ @@@ +@@ @@@ `@@ @@` @@@@@@ @@@@@@ @@@@@@@@@ - @@@ @@@ +@@ @@@ `@@@@@@@@@@` @@ @@ @@@ :@@ - @@@ @@@ +@@@@@ `@@@@@@@@@@` @@ @@ @@# @@+ - @@@ @@@ +@@@@@+ `@@ @@` @@ @@ @@: @@# - @@: .@@` +@@@+@@ `@@ @@` @@ @@ @@# @@+ - @@@. .@@@ +@@ @@@ `@@ @@` @@ @@ @@@ ,@@ - @@@@@@@@@ +@@ @@@ `@@ @@` @@@@ @@@@ @@@@#@@@@ - @@@@@@@ +@@ #@@ `@@ @@` @@@@: @@@@: @@'@@@@@ - @@: - @@: - @@: diff --git a/spring-rest/src/test/resources/cache/4b217e04ba52215f3a6b64d28f6729c6.0 b/spring-rest/src/test/resources/cache/4b217e04ba52215f3a6b64d28f6729c6.0 deleted file mode 100644 index 85fc22d658..0000000000 --- a/spring-rest/src/test/resources/cache/4b217e04ba52215f3a6b64d28f6729c6.0 +++ /dev/null @@ -1,13 +0,0 @@ -http://publicobject.com/helloworld.txt -GET -0 -HTTP/1.1 301 Moved Permanently -8 -Server: nginx/1.10.0 (Ubuntu) -Date: Sat, 08 Dec 2018 13:02:04 GMT -Content-Type: text/html -Content-Length: 194 -Connection: keep-alive -Location: https://publicobject.com/helloworld.txt -OkHttp-Sent-Millis: 1544274128028 -OkHttp-Received-Millis: 1544274128386 diff --git a/spring-rest/src/test/resources/cache/4b217e04ba52215f3a6b64d28f6729c6.1 b/spring-rest/src/test/resources/cache/4b217e04ba52215f3a6b64d28f6729c6.1 deleted file mode 100644 index acf72eabe3..0000000000 --- a/spring-rest/src/test/resources/cache/4b217e04ba52215f3a6b64d28f6729c6.1 +++ /dev/null @@ -1,7 +0,0 @@ - -301 Moved Permanently - -

301 Moved Permanently

-
nginx/1.10.0 (Ubuntu)
- - diff --git a/spring-rest/src/test/resources/cache/journal b/spring-rest/src/test/resources/cache/journal deleted file mode 100644 index a139399103..0000000000 --- a/spring-rest/src/test/resources/cache/journal +++ /dev/null @@ -1,75 +0,0 @@ -libcore.io.DiskLruCache -1 -201105 -2 - -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -DIRTY 2d9345a30d2cc31bb3091d70a8ef6c18 -CLEAN 2d9345a30d2cc31bb3091d70a8ef6c18 7618 1759 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 2d9345a30d2cc31bb3091d70a8ef6c18 -DIRTY 2d9345a30d2cc31bb3091d70a8ef6c18 -CLEAN 2d9345a30d2cc31bb3091d70a8ef6c18 7618 1759 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 2d9345a30d2cc31bb3091d70a8ef6c18 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 2d9345a30d2cc31bb3091d70a8ef6c18 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 2d9345a30d2cc31bb3091d70a8ef6c18 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 2d9345a30d2cc31bb3091d70a8ef6c18 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 2d9345a30d2cc31bb3091d70a8ef6c18 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 2d9345a30d2cc31bb3091d70a8ef6c18 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 2d9345a30d2cc31bb3091d70a8ef6c18 -DIRTY 2d9345a30d2cc31bb3091d70a8ef6c18 -CLEAN 2d9345a30d2cc31bb3091d70a8ef6c18 7618 1759 -READ 4b217e04ba52215f3a6b64d28f6729c6 -DIRTY 4b217e04ba52215f3a6b64d28f6729c6 -CLEAN 4b217e04ba52215f3a6b64d28f6729c6 333 194 -READ 2d9345a30d2cc31bb3091d70a8ef6c18 -DIRTY 2d9345a30d2cc31bb3091d70a8ef6c18 -CLEAN 2d9345a30d2cc31bb3091d70a8ef6c18 7618 1759 diff --git a/spring-rest/src/test/resources/test.txt b/spring-rest/src/test/resources/test.txt deleted file mode 100644 index 95d09f2b10..0000000000 --- a/spring-rest/src/test/resources/test.txt +++ /dev/null @@ -1 +0,0 @@ -hello world \ No newline at end of file diff --git a/spring-resttemplate/README.md b/spring-resttemplate/README.md index aee02416f4..eef85792ce 100644 --- a/spring-resttemplate/README.md +++ b/spring-resttemplate/README.md @@ -17,6 +17,9 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring - [Uploading MultipartFile with Spring RestTemplate](https://www.baeldung.com/spring-rest-template-multipart-upload) - [Get and Post Lists of Objects with RestTemplate](https://www.baeldung.com/spring-rest-template-list) - [Copy of RestTemplate Post Request with JSON](https://www.baeldung.com/spring-resttemplate-post-json-test) +- [HTTP PUT vs HTTP PATCH in a REST API](https://www.baeldung.com/http-put-patch-difference-spring) +- [A Custom Media Type for a Spring REST API](https://www.baeldung.com/spring-rest-custom-media-type) +- [Download an Image or a File with Spring MVC](https://www.baeldung.com/spring-controller-return-image-file) ### NOTE: