Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

Add your comments directly to the page. Include links to any relevant research, data, or feedback.

Page Properties
label

Status

Status
colourYellow
titleIn progress

Impact

Status
colourGreen
titleLow

Driver

Per Persson 

Approver

Per Persson

Contributors

Per Persson Isak Styf (Unlicensed) Joel Lindberg (Unlicensed) Dennis Nilsson (Unlicensed) Lamin Saidy (Unlicensed) Former user (Deleted) Jens Albonius (Unlicensed)

Informed

Due date

Outcome

Bakgrund

API-design säger vi “APIer skall versionshanteras“.

...

Riktlinjer för API-versionering i API Manager

Alternativ 1:
Vi lämnar det fritt för API-producenten

Alternativ 2:

En nivå, v1, v2, v3, …

Alternativ 3:

Två nivåer, 1.0, 1.1, 2.0, …

  • En API-förändring som bryter kontraktet (som gör att APIet inte är bakåtkompatibelt) skall resultera i att man stegar upp huvudversionen (från till exempel 1.0 till 2.0)

  • En API-förändring som endast lägger till nya resurser eller parametrar till ett API (som gör att APIet är bakåtkompatibelt) skall resultera i att man stegar upp inom huvudversionen (från till exempel 1.0 till 1.1)

Alternativ 4:

Tre nivåer, 1.0.0, 1.0.1, 1.1.0, 2.0.0 …

  • En API-förändring som bryter kontraktet (som gör att APIet inte är bakåtkompatibelt) skall resultera i att man stegar upp huvudversionen (från till exempel 1.0.0 till 2.0.0)

  • En API-förändring som endast lägger till nya resurser eller parametrar till ett API (som gör att APIet är bakåtkompatibelt) skall resultera i att man stegar upp inom huvudversionen på nivå två (från till exempel 1.0.0 till 1.1.0)

  • En API-förändring som ändrar datamängder i ett API (t ex utökar antal val i en ENUM) skall resultera i att man stegar upp inom huvudversionen på nivå tre (från till exempel 1.0.0 till 1.0.1)

Pros and cons

(plus) Enklast möjliga för våra API-producenter

(minus) Spretigt för våra API-konsumenter

(plus) Enkel och rakt på

(minus) Ingen indikation på om en versionsuppdatering är bakåtkompatibel eller ej

(plus) Tydligare livscykelhantering

(plus) Indikation om en versionsuppdatering är bakåtkompatibel eller ej tillgänglig

(minus) Något mer administration än i alternativ 2

(plus) Klart tydligast livscykelhantering

(plus) Indikation om en versionsuppdatering är bakåtkompatibel eller ej tillgänglig

(minus) Mer administration än i alternativ 3

Omröstning (smile)

Per Persson

Action items

Outcome