Building RESTful Web Services#

Rest Controller#

The @RestController annotation is used to define the RESTful web services.

@RestController
public class ProductServiceController { 
}

Request Mapping#

The @RequestMapping annotation is used to define the Request URI to access the REST Endpoints.

@RequestMapping(value = "/products")
public ResponseEntity<Object> getProducts() { }

Request Body#

The @RequestBody annotation is used to define the request body content type.

public ResponseEntity<Object> createProduct(@RequestBody Product product) {
}

Path Variable#

The @PathVariable annotation is used to define the custom or dynamic request URI.

public ResponseEntity<Object> updateProduct(@PathVariable("id") String id) {
}

Request Parameter#

The @RequestParam annotation is used to read the request parameters from the Request URL.

public ResponseEntity<Object> getProduct(
   @RequestParam(value = "name", required = false, defaultValue = "honey") String name) {
}

GET API#

http://localhost:8071/products

POST API#

http://localhost:8071/products

{
"id":3,
"name":"T5750"
}

PUT API#

http://localhost:8071/products/1

{
"name":"T5750"
}

DELETE API#

http://localhost:8071/products/3

Rest Template#

Rest Template is used to create applications that consume RESTful Web Services. You can use the exchange() method to consume the web services for all HTTP methods.

GET#

http://localhost:8071/template/products

POST#

http://localhost:8071/template/products

{
"id":3,
"name":"T5750"
}

PUT#

http://localhost:8071/template/products/1

{
"name":"T5750"
}

DELETE#

http://localhost:8071/template/products/3

Service Components#

Service Components are the class file which contains @Service annotation.

References#