#spring #api #java-8 #endpoint #spring-restcontroller
#spring #API #java-8 #конечная точка #spring-restcontroller
Вопрос:
У меня есть эта сущность.
@Entity
public class Dealer{
@EmbeddedId
private DealerIdKey idKey;
@NotNull
private LocalDate date;
}
@Embeddable
@Data
public class DealerIdKey implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull
@Size(max = 6)
private String code;
@NotNull
@Size(max = 4)
private String des;
}
Я хочу создать сопоставление удаления в контроллере
@Autowired
private DealerRepository repo;
@DeleteMapping("/dealer/{id}")
@ResponseBody
public void delete(@NotNull @PathVariable(name = "id", required = true) DealerIdKey id) {
repo.deleteById(id);
}
Какой должна быть конечная точка контроллера?
Или то, как я написал, — это правильный путь?
Ответ №1:
Поскольку ваше действие конечной точки (HTTP action) имеет тип DELETE, вы уже объявляете о своем намерении с помощью своей конечной точки. Так что то, как вы написали конечную точку, на мой взгляд (и по общему соглашению), правильно.
Но используйте любое соглашение, которое уже используется в вашем проекте, если у вас уже есть действующее соглашение. Последовательность — это ключ к успеху.
Если это чистый лист, не добавляйте имена функций CRUD в конечную точку.
Я бы прочитал этот ресурс, если вам нужен более подробный ответ. Но главный вывод — это сохранение последовательности в рамках проекта. Так что, если вы выбрали это соглашение, придерживайтесь его.