Skip to main content

Non Breaking Changes

During APIs development, two types of API changes are expected: non breaking changes or breaking changes. Inventi never introduces breaking changes. Whenever newly introduced functionality requires breaking changes, a new endpoint is created with increased version prefix number. I.e. v2. Nevertheless, non-breaking changes are introduced constantly without explicitly notifying the clients. All changes are documented in a Change Logs section.

What is a NON Breaking Change?

  1. Adding a new optional field in request or response body.
  2. Changing field from mandatory to optional in request or response body.
  3. Adding a new endpoint.
  4. Performance improvements.
  5. Adding new enum values to the request body.

What is a Breaking Change?

  1. Removing or renaming things.
    // before
    { "userId": 42 }
    // after
    { "id": 42 }
    
  2. Changing data types.
    // before
    { "age": 30 }
    // after
    { "age": "30" }
    
  3. Making optional things required.
    // before, deliveryTime optional
    POST /orders
    { "note": "call me" }
    // after, deliveryTime required
    POST /orders
    { "note": "call me", "deliveryTime": "18:00" }
    
  4. Changing response status code. I.e. from 404 to 400.
  5. Changing behavior or meaning.
    1. Same endpoint, different logic.
    2. Same field, different interpretation.