如何实现@DELETE方法?附相关API路径示例
实现@DELETE方法的正确方式
根据你给出的API路径示例https://..../v1/trails/245,当前的@DELETE("v1/trails/")缺少路径参数的占位配置,下面分两种常用框架说明正确实现方式:
Spring Boot(Spring MVC)场景
- 调整@DeleteMapping(或@DELETE)的路径,添加上路径参数占位符
{trailId} - 通过
@PathVariable注解将URL中的ID绑定到方法参数
示例代码:
@RestController @RequestMapping("/v1") public class TrailController { // 用@DeleteMapping组合注解,等价于@RequestMapping(method = RequestMethod.DELETE) @DeleteMapping("/trails/{trailId}") public ResponseEntity<Void> deleteTrail(@PathVariable("trailId") Long trailId) { // 执行删除逻辑:比如调用业务层删除ID为trailId的trail记录 // 示例:trailService.deleteById(trailId); return ResponseEntity.noContent().build(); // 返回204状态码表示删除成功无内容 } }
当请求https://..../v1/trails/245时,trailId参数会自动被赋值为245。
Retrofit场景
如果是用Retrofit调用外部API,需要做如下调整:
- 修改@DELETE注解的路径,添加
{trailId}占位符 - 用
@Path注解绑定方法参数到路径占位符
示例代码:
public interface TrailApi { @DELETE("v1/trails/{trailId}") Call<Void> deleteTrail(@Path("trailId") Long trailId); }
调用时传入ID即可生成正确URL:
// 初始化TrailApi实例后调用 trailApi.deleteTrail(245);
此时会自动拼接出目标URL https://..../v1/trails/245。
注意事项
- 路径占位符的名称必须和参数注解中的名称一致,确保参数能正确绑定
- RESTful风格中,DELETE方法用于删除指定资源,路径必须包含资源的唯一标识(如这里的trail ID)
- 成功删除后通常返回204 No Content状态码,符合REST规范
内容的提问来源于stack exchange,提问作者moslem Jamshidpour
相关产品推荐
相关产品推荐

