REST contract compatibility — openapi.yaml

openapi.yaml at the merge-base 55413126 against the working tree, read by oasdiff 1.30.0 — an independent differ, not ours. It resolves $refs, so an operation is listed here because of any schema it reaches, not only because its own paths entry moved. Every line below carries the rule id that produced it.

COMPATIBLE
Backward compatible
25 changes across 11 operations moved, and none of it can break a client compiled against the base spec.

openapi.yaml at the merge-base 55413126 against the working tree, read by oasdiff 1.30.0 — an independent differ, not ours. It resolves $refs, so an operation is listed here because of any schema it reaches, not only because its own paths entry moved. Every line below carries the rule id that produced it.

Compatible movement 11
GET/api/owners3 compatible changes
  • added the optional property items/pets/items/visits/items/vetFirstName to the response with the 200 status response-optional-property-added
  • added the optional property items/pets/items/visits/items/vetId to the response with the 200 status response-optional-property-added
  • added the optional property items/pets/items/visits/items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
lastName (query)stringdefault
Response200 - the primary success body3 changed
bodyOwnerDto[]
[ ]OwnerDto
addressstringrequiredminLength 1, maxLength 255e.g. 110 W. Liberty St.
The postal address of the pet owner.
citystringrequiredminLength 1, maxLength 80e.g. Madison
The city of the pet owner.
firstNamestringrequiredminLength 1, maxLength 30e.g. George
The first name of the pet owner.
idintegerreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet owner.
lastNamestringrequiredminLength 1, maxLength 30e.g. Franklin
The last name of the pet owner.
petsPetDto[]requiredreadOnly
The pets owned by this individual including any booked vet visits.
[ ]PetDto
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. Leo
The name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. cat
The name of the pet type.
visitsVisitDto[]requiredreadOnly
Vet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the visit.
ownerFirstNamestringreadOnly
First name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32
ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnly
Last name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet.
petNamestringreadOnly
Name of the pet (server-populated).
vetFirstNamestringreadOnly
First name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
vetLastNamestringreadOnly
Last name of the vet (server-populated).
telephonestringrequiredminLength 1, maxLength 20, pattern ^[0-9]*$e.g. 6085551023
The telephone number of the pet owner.
GET/api/owners/{ownerId}3 compatible changes
  • added the optional property pets/items/visits/items/vetFirstName to the response with the 200 status response-optional-property-added
  • added the optional property pets/items/visits/items/vetId to the response with the 200 status response-optional-property-added
  • added the optional property pets/items/visits/items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
ownerId (path)integerrequiredformat int32
Response200 - the primary success body3 changed
bodyOwnerDto
addressstringrequiredminLength 1, maxLength 255e.g. 110 W. Liberty St.
The postal address of the pet owner.
citystringrequiredminLength 1, maxLength 80e.g. Madison
The city of the pet owner.
firstNamestringrequiredminLength 1, maxLength 30e.g. George
The first name of the pet owner.
idintegerreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet owner.
lastNamestringrequiredminLength 1, maxLength 30e.g. Franklin
The last name of the pet owner.
petsPetDto[]requiredreadOnly
The pets owned by this individual including any booked vet visits.
[ ]PetDto
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. Leo
The name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. cat
The name of the pet type.
visitsVisitDto[]requiredreadOnly
Vet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the visit.
ownerFirstNamestringreadOnly
First name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32
ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnly
Last name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet.
petNamestringreadOnly
Name of the pet (server-populated).
vetFirstNamestringreadOnly
First name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
vetLastNamestringreadOnly
Last name of the vet (server-populated).
telephonestringrequiredminLength 1, maxLength 20, pattern ^[0-9]*$e.g. 6085551023
The telephone number of the pet owner.
GET/api/owners/{ownerId}/pets/{petId}3 compatible changes
  • added the optional property visits/items/vetFirstName to the response with the 200 status response-optional-property-added
  • added the optional property visits/items/vetId to the response with the 200 status response-optional-property-added
  • added the optional property visits/items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
ownerId (path)integerrequiredformat int32
petId (path)integerrequiredformat int32
Response200 - the primary success body3 changed
bodyPetDto
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. Leo
The name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. cat
The name of the pet type.
visitsVisitDto[]requiredreadOnly
Vet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the visit.
ownerFirstNamestringreadOnly
First name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32
ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnly
Last name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet.
petNamestringreadOnly
Name of the pet (server-populated).
vetFirstNamestringreadOnly
First name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
vetLastNamestringreadOnly
Last name of the vet (server-populated).
POST/api/owners/{ownerId}/pets/{petId}/visits1 compatible change
  • added the new optional request property vetId new-optional-request-property
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body1 changed
ownerId (path)integerrequiredformat int32
petId (path)integerrequiredformat int32
bodyVisitFieldsDtorequired
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
Response200 - the primary success body
This operation returns no body.
GET/api/pets3 compatible changes
  • added the optional property items/visits/items/vetFirstName to the response with the 200 status response-optional-property-added
  • added the optional property items/visits/items/vetId to the response with the 200 status response-optional-property-added
  • added the optional property items/visits/items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
This operation takes no parameters and no body.
Response200 - the primary success body3 changed
bodyPetDto[]
[ ]PetDto
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. Leo
The name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. cat
The name of the pet type.
visitsVisitDto[]requiredreadOnly
Vet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the visit.
ownerFirstNamestringreadOnly
First name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32
ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnly
Last name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet.
petNamestringreadOnly
Name of the pet (server-populated).
vetFirstNamestringreadOnly
First name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
vetLastNamestringreadOnly
Last name of the vet (server-populated).
GET/api/pets/{petId}3 compatible changes
  • added the optional property visits/items/vetFirstName to the response with the 200 status response-optional-property-added
  • added the optional property visits/items/vetId to the response with the 200 status response-optional-property-added
  • added the optional property visits/items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
petId (path)integerrequiredformat int32
Response200 - the primary success body3 changed
bodyPetDto
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. Leo
The name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. cat
The name of the pet type.
visitsVisitDto[]requiredreadOnly
Vet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the visit.
ownerFirstNamestringreadOnly
First name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32
ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnly
Last name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet.
petNamestringreadOnly
Name of the pet (server-populated).
vetFirstNamestringreadOnly
First name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
vetLastNamestringreadOnly
Last name of the vet (server-populated).
PUT/api/pets/{petId}1 compatible change
  • added the new optional request property visits/items/vetId new-optional-request-property
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body3 changed
petId (path)integerrequiredformat int32
bodyPetDtorequired
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. Leo
The name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1
The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. cat
The name of the pet type.
visitsVisitDto[]requiredreadOnly
Vet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the visit.
ownerFirstNamestringreadOnly
First name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32
ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnly
Last name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet.
petNamestringreadOnly
Name of the pet (server-populated).
vetFirstNamestringreadOnly
First name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
vetLastNamestringreadOnly
Last name of the vet (server-populated).
Response200 - the primary success body
This operation returns no body.
GET/api/visits3 compatible changes
  • added the optional property items/vetFirstName to the response with the 200 status response-optional-property-added
  • added the optional property items/vetId to the response with the 200 status response-optional-property-added
  • added the optional property items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
This operation takes no parameters and no body.
Response200 - the primary success body3 changed
bodyVisitDto[]
[ ]VisitDto
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the visit.
ownerFirstNamestringreadOnly
First name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32
ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnly
Last name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet.
petNamestringreadOnly
Name of the pet (server-populated).
vetFirstNamestringreadOnly
First name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
vetLastNamestringreadOnly
Last name of the vet (server-populated).
POST/api/visits1 compatible change
  • added the new optional request property vetId new-optional-request-property
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body3 changed
bodyVisitDtorequired
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the visit.
ownerFirstNamestringreadOnly
First name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32
ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnly
Last name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet.
petNamestringreadOnly
Name of the pet (server-populated).
vetFirstNamestringreadOnly
First name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
vetLastNamestringreadOnly
Last name of the vet (server-populated).
Response200 - the primary success body
This operation returns no body.
GET/api/visits/{visitId}3 compatible changes
  • added the optional property vetFirstName to the response with the 200 status response-optional-property-added
  • added the optional property vetId to the response with the 200 status response-optional-property-added
  • added the optional property vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
visitId (path)integerrequiredformat int32
Response200 - the primary success body3 changed
bodyVisitDto
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1
The ID of the visit.
ownerFirstNamestringreadOnly
First name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32
ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnly
Last name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1
The ID of the pet.
petNamestringreadOnly
Name of the pet (server-populated).
vetFirstNamestringreadOnly
First name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
vetLastNamestringreadOnly
Last name of the vet (server-populated).
PUT/api/visits/{visitId}1 compatible change
  • added the new optional request property vetId new-optional-request-property
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body1 changed
visitId (path)integerrequiredformat int32
bodyVisitFieldsDtorequired
datestringformat datee.g. 2013-01-01
The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shot
The description for the visit.
vetIdintegerformat int32, minimum 0e.g. 1
The ID of the vet that attended the visit.
Response200 - the primary success body
This operation returns no body.
Both differs agree. openapi-diff.py read 2 changed subjects — operations and schemas, counted its own way, not the list above — out of the same two revisions, and also calls this safe. The verdict is not one tool's opinion.