@ResponseBody
@RequestMapping(value = "/record/{id}", produces = { APPLICATION_JSON_VALUE, APPLICATION_XML_VALUE })
public DetailedRecordResource getRecord (final @PathVariable String id,
final @RequestParam(required = false, defaultValue = "embedded") String source,
final @RequestParam(required = false, defaultValue = "embedded") String fallback)
{
log.info("getRecord({}, {}, {})", id, source, fallback);
checkStatus();
final List<TrackResource> tracks = finalized(catalog.findTracks().inRecord(new Id(id)), source, fallback, TrackResource::new);
return single(finalized(catalog.findRecords().withId(new Id(id)), source, fallback,
record -> new DetailedRecordResource(record, tracks)));
}