1 Versioning Rest Api URI
Versioning Rest Api:
- Suppose you have built an great Rest API
- You have 100s of cutomers
- Now you need to implemnt a breaking change
- Example: spltit the name into two firstName and LastName
@RestController
public class VersioningPersonController {
@GetMapping("/v1/person")
public Personv1 getFirstVersionOfPerson() {
return new Personv1("Irfan Khan");
}
}
public class Personv1 {
private String name;
public Personv1(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Personv1 [name=" + name + "]";
}
}
now run in either browser or from your Rest Client
@RestController
public class VersioningPersonController {
@GetMapping("/v2/person")
public Personv2 getSecondVersionOfPerson() {
return new Personv2(new Name("Irfan", "Khan"));
}
}
public class Name {
private String firstName;
private String lastName;
public Name(String firstName, String lastName) {
super();
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
@Override
public String toString() {
return "Personv2 [firstName=" + firstName + ", lastName=" + lastName + "]";
}
}
Step 3: Personv2.java
public class Personv2 {
private Name name;
public Personv2(Name name) {
super();
this.name = name;
}
public Name getName() {
return name;
}
@Override
public String toString() {
return "Personv2 [name=" + name + "]";
}
}
with given 3 classes now we have splited the name into firstname
- http://localhost:8080/v1/person
- http://localhost:8080/v2/person
Comments
Post a Comment