Versionarea API FedEx
La FedEx, utilizăm versionarea semantică pentru a gestiona versiunile API. Fiecare versiune este reprezentată de formatul versiunii major.minor (și anume, API de expediere 1.1). O nouă versiune majoră se referă la o modificare incompatibilă în sens invers și o nouă versiune minoră indică o modificare compatibilă în sens invers.
La FedEx, urmăm o versionare URI simplă. Astfel, doar numărul versiunii majore este reprezentat în calea URI-ului. Observați că nu este inclus un număr al versiunii minore în calea URI-ului. Această strategie utilizează rutarea URI pentru a repera anumite versiuni ale API-ului.
Exemplu: /ship/v1/shipments
Principiile directoare ale strategiei de versionare
Intenționăm să lansăm mai puține versiuni majore pentru API-urile FedEx și să perimăm o versiune majoră la doi de la lansarea unei noi versiuni majore. De exemplu, dacă va fi lansată versiunea majoră „N”, versiunea „N-1” va fi acceptată o perioadă de doi ani de la lansarea versiunii „N”.
Exemplu: În 2020, este lansată versiunea majoră V1.0. Dacă în 2021, se lansează o versiune majoră V2.0, atunci V1.0 va fi perimată în 2023.
Versiunile minore vor accepta o mare parte dintre noile actualizări de funcționalități și caracteristici.
Exemplu: O versiune majoră ulterioară versiunii majore 1.0 sau versiunile minore 1.1, 1.2 etc. vor fi lansate pentru a introduce noi actualizări de funcționalități și de caracteristici.
În orice moment, toate punctele finale pentru un anumit API vor avea aceeași versiune majoră. Cea mai recentă versiune a documentației va fi disponibilă doar pe FedEx Developer Portal. Cu toate acestea, va exista un jurnal de modificări în cadrul fiecărei pagini Prezentare generală a API-ului, care va detalia modificările versiunilor majore și minore.
Când sunt lansate versiunile majore ale unui API?
Ne străduim să reducem numărul de versiuni majore pentru API-urile noastre. Cu toate acestea, există unele cazuri în care o nouă versiune majoră este inevitabilă. În continuare, vă prezentăm unele dintre motivele esențiale pentru care o nouă versiune majoră ar fi lansată:
- Când o valoare de enumerare existentă este eliminată sau formatul sau valoarea în sine s-a schimbat în solicitare sau răspuns
Exemplu: Valoarea de enumerare „COORDONATE GEOGRAFICE” pentru elementul locationSearchCriterion este eliminată din versiunea N; sintaxa datei este modificată de la AA-LL-ZZ la LL-ZZ-AAAA; modificarea tipului de locație de la FEDEX_ONSITE la ONSITE în răspuns
- Când un element existent este eliminat din solicitare sau din răspuns
Exemplu: elementul pickupType este eliminat (sau redenumit) din solicitarea tarifelor în versiunea N
- Când este eliminată o metodă existentă
Exemplu: Metoda de creare și anulare a etichetei FedEx Express nu mai este acceptată în versiunea N
- Când un element existent care era opțional sau condițional este făcut obligatoriu în solicitare
Exemplu: Numărul de rezervare este acum un element obligatoriu pentru expedierile FedEx Express® Freight în versiunea N
- Când sunt modificări de design API
Exemplu: Structura de solicitare și de răspuns este reorganizată
- Când sunt modificări cu coduri de eroare și mesaje de eroare
Exemplu: Modificarea codului de eroare de la INCORRECT.WEIGHT la WEIGHT.LIMIT.EXCEEDED
Când sunt lansate versiunile minore API?
- Când este adăugată o nouă valoare de enumerare
Exemplu: O nouă ofertă de transport este adăugată pentru elementul serviceType în versiunea N
- Când este adăugat un nou element
Exemplu: Un nou element opțional în scopul de a include numărul de telefon al brokerului pentru expedierea internațională
- Când este adăugată o nouă metodă
Exemplu: O metodă de modificare a documentelor comerciale internaționale, după ce acestea sunt încărcate, este adăugată în versiunea N.
- Când este făcut opțional un element existent care era obligatoriu
Exemplu: ID-ul documentului este acum opțional deoarece FedEx poate deriva ID-ul documentației pe baza informațiilor privind utilizatorul.
Întrebări frecvente
Va trebui să actualizați URI-ul la cea mai recentă versiune în termen de doi ani, pentru ca FedEx să poată retrage versiunea mai veche.
Versiunile minore sunt lansate pentru a adapta noile caracteristici și modificări care sunt compatibile în sens invers și, astfel, nesusceptibile de a vă deteriora integrarea. Nu este o cerință să faceți upgrade la o versiune minoră nouă, dar este recomandat, în general, ca cea mai bună practică să faceți upgrade la versiuni minore pentru a utiliza noile caracteristici create pentru a răspunde nevoilor clienților.
În serviciile web FedEx, fiecare modificare necesită o nouă lansare WSDL sau o versiune majoră, îngreunându-se upgrade-urile pentru clienți. Cu API-urile FedEx, majoritatea noilor caracteristici pot fi introduse prin versiuni minore, facilitându-se realizarea upgrade-urilor pentru clienți. Vor exista mai multe versiuni minore și mai puține versiuni majore ale API-urilor.