有谁能解释一下:
application/vnd.api+json和
application/json发布于 2021-10-14 11:45:58
这称为、MIME类型、版本控制、或内容协商。当您开发REST时,您可能希望在将来添加该API的不同版本,例如v1、v2等.,我们的API的不同用户应该能够调用所需的版本。现在可以有不同的方法来解决这个API版本控制问题,比如URI版本控制、参数版本控制、Header版本控制或MIME版本控制。
让我们用一个例子来讨论MIME版本化。
假设我们有一个REST响应的Person实体:
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");
}
}现在,我使用不同的版本访问了我们的API,并从API中获得了适当的响应。请检查以下输出:
application/vnd.company.api-v1+json 请求第1版
application/vnd.company.api-v2+json 请求第2版
因此,我们可以看到如何使用这种MIME版本控制方法对REST进行版本化。不同的组织对API版本控制使用不同的方法。
https://stackoverflow.com/questions/28055526
复制相似问题