这称为 MIME 类型版本控制或内容协商。当您开发 REST API 时,您可能希望在将来添加该 API 的不同版本,比如 v1、 v2等等。.,我们的 API 的不同用户应该能够调用所需的版本。
现在可以有不同的方法来解决这个 API 版本控制问题,如 URI版本控制、 参数版本控制、 头版本控制或 哑剧版本控制。
让我们用一个例子来讨论 MIME 版本。
假设我们有一个 人实体,我们的 REST API 对其进行响应:
public class Person {
private String name;
private String email;
public Person() {
}
public Person(String name, String email) {
this.name = name;
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
但是我们想要的是 API 的调用者应该提到一个版本,并且基于这个版本,我们将与适当的人进行响应。
下面是我们的 RestController:
@RestController
public class PersonController {
@GetMapping(path = "/person", produces = "application/vnd.company.api-v1+json")
public Person getPersonV1() {
return new Person("Mr. ABC", "abc@gmail.com");
}
@GetMapping(path = "/person", produces = "application/vnd.company.api-v2+json")
public Person getPersonV2() {
return new Person("Mr. XYZ", "xyz@gmail.com");
}
}