У меня есть @ RestController в Spring Boot Application.
@PutMapping("{table}/{key}")
public void update(@PathVariable("tables") String tableName,
@PathVariable("key") String key,
@RequestBody Entity entity) {
...
}
Более удобно преобразовать это отображение в:
@PutMapping("{table}/{key}")
public void update(@RequestBody Entity entity) {
...
}
и ожидайте, что информация из @ PathVariable будет изнутри @ RequestBody .
Причина : у меня есть еще один @ RestController , в котором я получаю AnotherEntity anotherEntity
. Этот архитектурный стиль позволяет мне создавать общую иерархию в слоях обслуживания
Вопрос 1 : Разве это не плохая картина? Это довольно хороший сервис REST или мне следует его избегать?
Вопрос 2 : В этом случае я не использую @ PathVariable , и мне просто нужно указать someWord / SomeOtherWord как @ PutMapping путь . Есть ли способ указать что-то вроде любой / любой без проверки, что я должен использовать это?
Обновление: пример архитектуры
public abstract class Validator<T> {
public abstract void validate(T t);
}
public class FirstEntityValidator extends Validator<FirstEntity> {
public void validate(FirstEntity entity){
...
}
}
public class SecondEntityValidator extends Validator<SecondEntity> {
public void validate(SecondEntity entity){
...
}
}
public abstract class EntityService<T> {
private Validator<T> validator;
public EntityService(Validator<T> validator){
this.validator = validator;
}
}
public class FirstEntityService extends EntityService<FirstEntity> {
public FirstEntityService(FirstEntityValidator<FirstEntity> validator){
super(validator);
}
}
public class SecondEntityService extends EntityService<SecondEntity> {
public SecondEntityService(SecondEntityValidator<SecondEntity> validator){
super(validator);
}
}