API 个端点的命名约定
Naming convention of API endpoints
我有这个实体。
@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);
}
控制器的终点应该是什么?
还是我写的方式才是正确的方式?
由于您的端点操作(HTTP 操作)是 DELETE 类型,因此您已经通过端点声明了您的意图。所以我认为你写端点的方式(和一般惯例)是正确的。
但是,如果您已经制定了约定,请使用您的项目中已经使用的任何约定。一致性是关键。
如果一切从头开始,请不要在端点中添加 CRUD 函数名称。
如果您想要更深入的答案,我会通读 this 资源。但主要的收获是在项目中保持一致。因此,如果您选择该约定,请坚持下去。
我有这个实体。
@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);
}
控制器的终点应该是什么? 还是我写的方式才是正确的方式?
由于您的端点操作(HTTP 操作)是 DELETE 类型,因此您已经通过端点声明了您的意图。所以我认为你写端点的方式(和一般惯例)是正确的。
但是,如果您已经制定了约定,请使用您的项目中已经使用的任何约定。一致性是关键。
如果一切从头开始,请不要在端点中添加 CRUD 函数名称。
如果您想要更深入的答案,我会通读 this 资源。但主要的收获是在项目中保持一致。因此,如果您选择该约定,请坚持下去。