Я пытался получить сущность по данным JPA и покоя данных без HATEOAS.
Условие состоит в том, что я использую форму HATEOAS, а иногда мне нужен чистый ответ Json.
Итак, я создаю JSON, создавая путь контроллера отдельно от конечной точки хранилища и создавая класс DTO отдельно.
это мой код:
@RepositoryRestController
public class MetricController {
@Autowired
private MetricRepository metricRepository;
@RequestMapping(method = RequestMethod.GET, value = "/metrics/in/{id}")
public @ResponseBody
MetricDTO getMetric(@PathVariable Long id) {
return MetricDTO.fromEntity(metricRepository.getOne(id));
}
}
@RepositoryRestResource
public interface MetricRepository extends JpaRepository<Metric, Long> { }
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class MetricDTO {
private SourceType sourceType;
private String metricTypeField;
private String metricType;
private String instanceType;
private String instanceTypeField;
private List<String> metricIdFields;
private List<String> valueFields;
private Map<String, String> virtualFieldValueEx;
public static MetricDTO fromEntity(Metric metric) {
return new MetricDTO(
metric.getSourceType(),
metric.getMetricTypeField(),
metric.getMetricType(),
metric.getInstanceType(),
metric.getInstanceTypeField(),
metric.getMetricIdFields(),
metric.getValueFields(),
metric.getVirtualFieldValueEx()
);
}
}
Это так, как я, но я ожидаю, что будут лучшие варианты и шаблоны.
Вопрос в том, интересно, так ли это лучше?