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.