Spring Boot REST API端点映射最佳实践

时间:2018-06-26 06:08:59

标签: rest api web-services spring-boot microservices

我正在将波纹管端点URL映射与HTTP方法(POST,DELETE,GET,PUT)一起使用

创建新交易的POST-

@PostMapping("/trade")

删除以删除具有特定ID的交易-

@DeleteMapping("/trade/{id}")

获取以获取特定交易的详细信息-

@GetMapping("/trade/{id}")

输入更新交易明细-

@PutMapping(“/trade/{id}”)

获取用于检索集合的所有交易清单-

@GetMapping("/trades")

如果我在这里缺少任何内容,请提出建议

2 个答案:

答案 0 :(得分:2)

添加API版本

@RestController
@RequestMapping("/API/V1")
public class TestController {

@RequestMapping("/greeting")
    public String greeting( {
        return "welcome";
    }
}

答案 1 :(得分:0)

对于版本控制,我可以使用以下任何一种方法

1。通过URI路径–您在端点的URL路径中包含版本号,例如/ api / v1 / trade。 2.通过查询参数–您将版本号作为具有指定名称的查询参数进行传递,例如/ api / trade?version = 1。 3.通过自定义HTTP标头–您定义了一个新标头,其中包含请求中的版本号。 4.通过内容协商-版本号与接受的内容类型一起包含在“接受”标头中。
1)不同的URL映射如下  版本1:-

`http://localhost:8080/v1/trade`

版本2:-

 `http://localhost:8080/v2/trade`



 @RestController
public class TradeController {

  @GetMapping("v1/trade")
  public Trade tradeVersionOne() {
    return new Trade("123","Trade Result");
  }

  @GetMapping("v2/trade")
  public Trade tradeVersionTwo() {
    return new Trade(new RealTimeTrade("123", "Real Time Trade Result"));
  }

2)查询参数在URL中的使用  版本1:-     http://localhost:8080/trade/param?version=1

版本2:-     http://localhost:8080/trade/param?version=2

@RestController
public class TradeController {

  @GetMapping("v1/trade" params = "version=1")
  public Trade tradeVersionOne() {
    return new Trade("123","Trade Result");
  }

  @GetMapping("v2/trade" params = "version=2")
  public Trade tradeVersionTwo() {
    return new Trade(new RealTimeTrade("123", "Real Time Trade Result"));
  }
 }