Верзије и компатибилност
API има једну главну верзију, /v1, и она само расте. Интеграција написана данас наставља да ради док стижу нове
могућности: ништа на шта се ослања не добија ново име, не уклања се и не добија ново значење.
Број верзије
API има број верзије, на пример 1.62.0. Он се мења са сваким издањем:
- споредни број – када се нешто дода: операција, поље, догађај;
- број закрпе – када се исправи опис или текст поруке, а ништа друго се не мења.
Верзију коју адреса пружа можете да прочитате у сваком тренутку:
| Где | Шта |
|---|---|
GET /openapi.json | info.version спецификације |
| Сваки догађај фида догађаја и сваки вебхук | api_version, верзија чију шему прати data |
GET /v1/health такође има version, али то је верзија издања платформе Sursa које
опслужује адресу, а не верзија API интерфејса.
Споредну верзију не бирате: сваки захтев обрађује тренутна верзија. Захваљујући правилима у наставку то је безбедно.
Шта може да се промени у /v1
Ове промене могу да стигну у било којој споредној верзији. Напишите интеграцију тако да је оне не покваре:
- Нове операције.
- Нови опциони параметри и поља захтева. Захтеви без њих раде као и пре.
- Нова поља у одговорима, објектима и догађајима.
- Нове вредности набрајања у одговорима, на пример нови статус картице или нови тип догађаја.
- Нови кодови грешака и нова заглавља одговора.
- Ограничења која постају блажа: већа највећа дужина, шири распон вредности.
- Преформулисани текстови
messageу грешкама и преформулисани описи.
Шта ваш код мора да подноси
- Занемарите поља која не познајете. Не прекидајте рад када одговор има више поља него што очекујете и не користите строге шеме које их одбацују.
- Прихватајте вредности набрајања које не познајете. Свако набрајање у одговору може да се прошири. Непознату вредност третирајте као „остало“, а не као грешку.
- Прескачите типове догађаја које не познајете, и у вебхуковима и у токовима.
- Непознате кодове грешака обрађујте према HTTP статусу: погледајте Грешке.
- Не ослањајте се на редослед поља у JSON објектима ни на тачан текст порука.
Шта се никада не мења у /v1
- Путања, параметар, поље или вредност набрајања никада не добијају ново име и никада се не уклањају.
- Тип поља се никада не мења и поље никада не добија ново значење, на пример нове јединице.
- Захтев који се данас прихвата неће касније бити одбијен.
- Статусни код успешног одговора остаје исти.
- Кодови грешака задржавају своје значење, а поље
detailу одговорима са грешком задржава свој облик. - Типови догађаја никада не добијају ново име и не уклањају се, а њихов
dataсамо добија нова поља.
Некомпатибилне промене
Ако икада буде потребна некомпатибилна промена, она се објављује као нова главна верзија, на пример /v2, поред
/v1. /v1 наставља да ради без измена, а обе верзије раде упоредо.
Када ће нека путања бити укинута:
- У спецификацији се означава као
deprecatedи наводи у дневнику измена, са датумом када ће бити искључена. - Њени одговори садрже заглавља
Deprecation: trueиSunset: <date>. - Наставља да ради најмање 180 дана након најаве. Организације чији је API кључеви користе обавештавају се писмено најмање 90 дана унапред.
- После датума гашења још 90 дана одговара са
410и кодомapi.gone.
Пратите заглавље Deprecation у својим логовима или систему надзора: то је најранији сигнал да путања коју користите
нестаје.
Како да будете у току
Дневник измена овог портала наводи свако издање, са оним што је додато и оним што је проглашено застарелим. Пре него што надоградите своју интеграцију, упоредите њен код са записима од верзије за коју сте је направили.