Java tutorial
package github.priyatam.springrest.resource; import com.google.common.collect.Lists; import github.priyatam.springrest.domain.Driver; import github.priyatam.springrest.helper.PersistenceHelper; import github.priyatam.springrest.helper.ResponseBuilderHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class DriverResource { final static Logger logger = LoggerFactory.getLogger(DriverResource.class); @Autowired protected ResponseBuilderHelper responseBuilder; @Autowired protected PersistenceHelper persistenceHelper; @RequestMapping(method = RequestMethod.GET, value = "/driver/{licenseNo}") @ResponseBody public ResponseEntity<Driver> getDriver(@PathVariable String licenseNo) { logger.debug(String.format("Retrieving Driver %s :", licenseNo)); Driver driver = persistenceHelper.loadDriverByLicenseNum(licenseNo); if (driver == null) { logger.warn("No Driver found"); return new ResponseEntity<Driver>(null, new HttpHeaders(), HttpStatus.NOT_FOUND); } // Convert to Restful Resource, update ETag and HATEOAS references responseBuilder.toDriver(Lists.newArrayList(driver)); return new ResponseEntity<Driver>(driver, HttpStatus.OK); } }