===================
Implementation of a RESTfull web API, using:
- Spring 3.1 and Jackson
- Hibernate 3.6
- testing: Junit, Mockito, Hamcrest, Apache HTTP client
===============
GET /api/helloWorld/{id}
- http response codes: 200, 404, 500
- json (request/response) 6093 : none/single resource
- retrieves the resource by id
POST /api/helloWorld - http response codes: 201, 415, 500
- json (request/response): single resource/none
- creates a new resource
PUT /api/helloWorld
- http response codes: 200, 400, 404, 500
- json (request/response): single resource/none
- updates an existing resource
DELETE /api/helloWorld/{id}
- http response codes: 200, 404, 500
- json (request/response): none/none
- delete an existing resource by id
GET /api/helloWorld
- http response codes: 200, 500
- json (request/response): none/multiple resources
- retrieves all resources of that type
-
single resource: { "name": "Dvthix", "id": 1 }
-
multiple resources: [ { "name": "Dvthix", "id": 1 }, { "name": "cPfCwV", "id": 2 }, ]
=================
- in progress
===================
- How to avoid brittle tests when testing the Service Layer
- Introduction to Java integration testing for a REST API
- How to set up Integration Testing with the Maven Cargo plugin
- Bootstrapping a web application with Spring 3.1 and Java based Configuration, part 1
- Building a RESTful Web Service with Spring 3.1 and Java based Configuration, part 2
- Securing a RESTful Web Service with Spring Security 3.1, part 3
- RESTful Web Service Discoverability, part 4
======================
- improvements in validation and HTTP response codes
- improving the marshaling of the server stack trace
- improve the discoverability of the REST API - make good use of the Location HTTP header for returning full URLs (not just ids) so that the client doesn't have to construct his own URLs; introduce a /about URL to make discoverability better
- expand on the design document, covering: details of the transaction strategy