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.