For Personal EDU only!
VPP Spring Remoting and Webservices - chapter 14-28, using REST
Notes:
- The exercise use a server-client application setup.
- This repo holds the server-side app.
- Need the tomcat server up and running with provided /mywebbapp/ application started.
- Related client-side app is in repo: TBA
Chapter summary:
-
Ch. 14 Part 3: REST Warmup (28 m 52 s) :: As a prelude to part 3, we start by reviewing the HTTP Verbs. If you know these already, you can skip to the next chapter.
-
Ch. 15 Introducing REST (18 m 16 s) :: What is REST? Is it a standard? We define REST using "4 core principles". In this chapter we explore the first two of these.
-
Ch. 16 Representations and URIs (39 m 12 s) :: We'll start by building some REST representations and assigning them URIs.
-
Ch. 17 REST Clients (31 m 1 s) :: Of course, we also need to be able to call our REST service, so we look at what a REST client might look like, both in Java and in Spring.
-
Ch. 18 Content Negotiation (60 m 42 s) :: We'll learn how the HTTP headers contain information about the type of data the client would like to receive.
-
Ch. 19 Error Handling (49 m 16 s) :: Learning the HTTP Status codes is important as a REST developer.
-
Ch. 20 Client Side Errors (40 m 57 s) :: The RESTTemplate is a bit weak at detecting errors. We show how to extend the template to make it more robust.
-
Ch. 21 Collections and Ranges (49 m 10 s) :: How to return representations of multiple objects.
-
Ch. 22 Full HTTP Operations (62 m 53 s) :: The third of the four core principles of REST is that the HTTP Verbs should be wisely used.
-
Ch. 23 Editing Conflicts (optional) (40 m 25 s) :: This advanced chapter shows how you can implement optimistic locking for PUT operations by returning HTTP 409.
-
Ch. 24 Partial Updates with PATCH (optional) (29 m 8 s) :: PATCH is a new (proposed) HTTP Verb and can be used for partial updates. Its a good idea but client support is patchy (pun not intended).
-
Ch. 25 HATEOAS (62 m 39 s) :: Perhaps the worst acronym in our industry, this hides an important concept that is slowly becoming more important in REST. We start with the basics...
-
Ch. 26 More HATEOAS (45 m 59 s) :: ... and then we expand to use more features, including the Spring HATEOAS plugin.
-
Ch. 27 Validation (39 m 26 s) :: How to use standard Spring-MVC to trap for errors in the representations.
-
Ch. 28 Practical Session (92 m 23 s) :: A major practical. Before starting, we talk about ISO8601 dates, and also why REST isn't CRUD.
antlr-2.7.7.jar aopalliance-1.0.jar aspectjweaver-1.8.0.M1.jar commons-dbcp-1.2.2.jar commons-logging-1.1.1.jar commons-pool-1.4.jar dom4j-1.6.1.jar hamcrest-core-1.3.jar hessian-4.0.37.jar hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.4.Final.jar hibernate-ehcache-4.1.4.Final.jar hibernate-entitymanager-4.1.4.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar hibernate-validator-5.1.3.Final.jar hsqldb.jar jackson-annotations-2.4.3.jar jackson-core-2.4.3.jar jackson-databind-2.4.3.jar javassist-3.15.0-GA.jar javax.inject.jar javax.servlet-api.jar jboss-logging-3.1.0.GA.jar jboss-transaction-api_1.1_spec-1.0.0.Final.jar json-path-0.9.1.jar json-smart-1.2.jar jstl.jar junit-4.11.jar log4j.jar objenesis-2.1.jar Read Me.txt slf4j-api-1.6.1.jar slf4j-api-1.7.7.jar slf4j-simple-1.7.7.jar spring-aop-4.0.2.RELEASE.jar spring-aspects-4.0.2.RELEASE.jar spring-beans-4.0.2.RELEASE.jar spring-context-4.0.2.RELEASE.jar spring-context-support-4.0.2.RELEASE.jar spring-core-4.0.2.RELEASE.jar spring-expression-4.0.2.RELEASE.jar spring-framework-bom-4.0.2.RELEASE.jar spring-hateoas-0.16.0.RELEASE.jar spring-instrument-4.0.2.RELEASE.jar spring-instrument-tomcat-4.0.2.RELEASE.jar spring-jdbc-4.0.2.RELEASE.jar spring-jms-4.0.2.RELEASE.jar spring-messaging-4.0.2.RELEASE.jar spring-orm-4.0.2.RELEASE.jar spring-oxm-4.0.2.RELEASE.jar spring-plugin-core-1.1.0.RELEASE.jar spring-test-4.0.2.RELEASE.jar spring-tx-4.0.2.RELEASE.jar spring-web-4.0.2.RELEASE.jar spring-webmvc-4.0.2.RELEASE.jar spring-webmvc-portlet-4.0.2.RELEASE.jar spring-websocket-4.0.2.RELEASE.jar standard.jar validation-api-1.1.0.Final.jar