Qasja në llogari dhe në dokument
Shkarkoni një bashkëngjitje ekzistuese nga një projekt i bartjes së numrave që i përket llogarisë suaj API. Përdorni një llogari API të aktivizuar përmes HTTPS, nga një adresë IP e lejuar. Projekti nuk duhet të jetë i fshirë. Identifikuesi i dokumentit kërkohet brenda atij projekti; ai nuk është një lidhje publike globale për shkarkim.
Identifikoni dokumentin
Lexoni përgjigjen me hollësitë e projektit dhe përdorni një hyrje nga lista e tij uploads. Hyrja përfshin vlerën numerike id, emrin origjinal të skedarit, prapashtesën e ruajtur dhe adresën relative download_url. Përdorni vlerën e projektit për uniqueid dhe identifikuesin e atij ngarkimi, jo identifikuesin numerik të rreshtit të projektit apo identifikuesin e një rreshti të numrit të telefonit.
Zgjidhni një URL relative të kthyer vetëm në raport me hostin e besuar API që keni konfiguruar. Shkarkimi kërkon të njëjtin autentikim të llogarisë; metatëdhënat e dokumentit nuk japin qasje pa autentikim.
Dërgoni kërkesën dhe ruani përgjigjen
Vendosni PROJECT_ID dhe DOCUMENT_ID në vlerat nga projekti i llogarisë suaj. Kodoni identifikuesin e projektit për përdorim në URL. Ky shembull i ruan veçmas bajtet dhe fushat e kreut të përgjigjes, duke përdorur një emër të pandryshueshëm lokal për skedarin dalës, në vend që t'i besojë emrit të skedarit të bashkëngjitur.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--dump-header document-headers.txt \
--output porting-document.bin \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID/document/$DOCUMENT_ID"Kërkesa përdor GET pa trup. Ajo lexon një bashkëngjitje të vetme të plotë, pa ndarje në faqe specifike për këtë pikë fundore, pa mbështjellës JSON dhe pa kontratë të dokumentuar për shkarkim sipas intervaleve.
Përgjigjja binare dhe fushat e kreut
Kur kërkesa ka sukses, trupi përmban bajtet e ruajtura të bashkëngjitjes pas hapit të dekodimit të ruajtjes së vjetër, jo base64 dhe as një objekt përgjigjeje JSON. Metoda dërgon një fushë kreu Content-Disposition për bashkëngjitjen duke përdorur emrin e ruajtur të skedarit, me thonjëzat e dyfishta të hequra. Nuk garantohet që kjo fushë është e koduar sipas standardeve ose që përfaqëson një shteg lokal të sigurt skedari; zgjidhni vetë emrin e skedarit të destinacionit.
| Prapashtesa e ruajtur | Content-Type |
|---|---|
| application/pdf | |
| png | image/png |
| jpg, jpeg | image/jpeg |
| doc | application/msword |
| Vlera të tjera | application/octet-stream |
Krahasimi i prapashtesave nuk dallon shkronjat e mëdha nga të voglat. Lloji MIME zgjidhet sipas prapashtesës së ruajtur, jo nga inspektimi i përmbajtjes, dhe nuk garanton që dokumenti është i vlefshëm.
Verifikoni skedarin e shkarkuar
- Shqyrtoni si statusin HTTP, ashtu edhe fushat e kreut të përgjigjes. Gabimet e autentikimit ose të kërkimit mund të kthejnë një përgjigje JSON nga API në vend të një skedari. Mos e trajtoni çdo trup jo të zbrazët ose skedar dalës të ruajtur si një shkarkim të suksesshëm PDF.
- Nëse trupi përmban një gabim JSON, shqyrtoni
status.codedhestatus.msg. Mbajini të dhënat dalëse të gabimit veçmas nga dokumenti i pritur. - Kontrolloni që skedari i përftuar nuk është i zbrazët dhe hapet si lloji i pritur. Nëse e ruani origjinalin, krahasoni shumën e tij të kontrollit me atë të kopjes përpara se të mbështeteni te kopja.
- Nëse rezultati është i zbrazët, i pavlefshëm ose ndryshon nga origjinali, ndaloni dhe kërkojini ekipit të mbështetjes të kontrollojë bashkëngjitjen e ruajtur. Shkarkimet e përsëritura nuk e riparojnë ruajtjen.
Përputhshmëria me ruajtjen e vjetër
Rrjedha aktuale e ngarkimit përmes API dhe komponentët e shqyrtuar të shkrimit për ngarkimet nga portali dhe sistemi i vjetër i ruajnë bajtet e dokumenteve duke përdorur sekuenca shmangieje. Ky shkarkim e zhbën atë shndërrim. Testet jashtë linje të funksionit trajtues real ruajnë të gjitha vlerat e bajteve dhe vijat e pjerrëta të kundërta literale për atë format ruajtjeje.
Kjo nuk është një garanci për çdo regjistrim historik ose të importuar nga jashtë. Funksioni trajtues e dekodon gjithmonë bllokun binar të ruajtur dhe nuk zbulon nëse një regjistrim është importuar pa sekuencat e pritshme të shmangies. Gjithashtu, ai nuk përdor si alternativë një shteg skedari kur regjistrimi nuk ka bllok binar të ruajtur. Regjistrime të tilla mund të prodhojnë bajte të ndryshuara ose përmbajtje të zbrazët. Verifikoni rezultatin dhe kërkojini ekipit të mbështetjes të hetojë bashkëngjitjen e prekur, në vend që të ndryshoni një dokument të klientit ose të supozoni se metatëdhënat e tij vërtetojnë që skedari është i disponueshëm.
Portali aktual përdor fillimisht këtë rrugë API dhe ka mekanizma shtesë lokalë alternativë. Një shkarkim i suksesshëm nga portali nuk vërteton që çdo regjistrim i vjetër mund të shkarkohet drejtpërdrejt përmes kësaj API.
Gabimet dhe efektet
Një projekt që mungon, është fshirë ose nuk i përket llogarisë kthen kodin API 404 me një mesazh që tregon se projekti nuk u gjet. Një ngarkim që mungon brenda një projekti që i përket llogarisë kthen kodin API 404 me një mesazh që tregon se dokumenti nuk u gjet. Lexoni si trupat e gabimeve të API, ashtu edhe statusin HTTP. Për një regjistrim që ekziston, por nuk ka bajte të ruajtura të përdorshme, ky funksion trajtues nuk ofron një përgjigje të posaçme dhe të besueshme që tregon se nuk u gjet.
Pika fundore e shqyrtuar lexon një bashkëngjitje. Ajo nuk ngarkon, ndryshon apo heq një dokument, nuk dërgon një kërkesë për bartjen e numrave dhe nuk debiton llogarinë. Bashkëngjitjet për bartjen e numrave mund të përmbajnë të dhëna identiteti, faturimi ose autorizimi: mbajini brenda rrjedhave të autorizuara të punës së llogarisë dhe mos i përfshini në regjistra publikë, në sisteme analitike apo në pamje ekrani të dokumentacionit.