Приступ налогу и документу
Преузмите постојећи прилог из пројекта преноса бројева који припада вашем API налогу. Користите омогућен API налог преко HTTPS са дозвољене IP адресе. Пројекат не сме бити избрисан. Идентификатор документа тражи се у оквиру тог пројекта; то није глобална јавна веза за преузимање.
Одредите документ
Прочитајте одговор са детаљима пројекта и употребите ставку из његове листе uploads. Ставка садржи нумерички id, изворно име датотеке, сачувану екстензију и релативни download_url. Користите пројектни uniqueid и идентификатор тог отпремљеног прилога, а не нумерички идентификатор реда пројекта или идентификатор реда телефонског броја.
Враћени релативни URL разрешавајте искључиво у односу на подешени API хост коме верујете. За преузимање је потребна иста аутентификација налога; метаподаци документа не омогућавају приступ без аутентификације.
Пошаљите захтев и сачувајте одговор
Подесите PROJECT_ID и DOCUMENT_ID на вредности из пројекта вашег налога. Примените URL кодирање на идентификатор пројекта. Овај пример засебно чува бајтове и заглавља одговора, користећи унапред одређено локално име излазне датотеке уместо ослањања на име датотеке прилога.
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"Захтев користи GET без тела. Чита један цео прилог, без пагинације специфичне за ову крајњу тачку, JSON омотача или документованог уговора за преузимање опсега бајтова.
Бинарни одговор и заглавља
Када захтев успе, тело садржи сачуване бајтове прилога након корака декодирања старог формата складиштења, а не base64 нити JSON објекат одговора. Метод шаље заглавље Content-Disposition за прилог користећи сачувано име датотеке из кога су уклоњени двоструки наводници. Није загарантовано да је заглавље кодирано у складу са стандардима нити да представља безбедну локалну путању датотеке; сами изаберите име одредишне датотеке.
| Сачувана екстензија | Content-Type |
|---|---|
| application/pdf | |
| png | image/png |
| jpg, jpeg | image/jpeg |
| doc | application/msword |
| Остале вредности | application/octet-stream |
При подударању екстензија не разликују се велика и мала слова. MIME тип бира се на основу сачуване екстензије, а не провером садржаја, и не гарантује да је документ исправан.
Проверите преузету датотеку
- Проверите и HTTP статус и заглавља одговора. Грешке при аутентификацији или претрази могу довести до враћања одговора у формату JSON из API уместо датотеке. Немојте свако непразно тело или сачувану излазну датотеку сматрати успешно преузетим PDF документом.
- Ако тело садржи грешку у формату JSON, проверите
status.codeиstatus.msg. Излаз са грешком чувајте одвојено од очекиваног документа. - Проверите да добијена датотека није празна и да се отвара као очекивани тип. Ако имате сачуван оригинал, упоредите контролну суму са оригиналом пре него што се ослоните на копију.
- Ако је резултат празан, неисправан или се разликује од оригинала, зауставите се и затражите од подршке да провери сачувани прилог. Поновљена преузимања не поправљају податке у складишту.
Компатибилност са старим начином складиштења
Тренутни поступак отпремања преко API и прегледане компоненте за упис при отпремању преко портала и старијих система чувају бајтове документа уз екранирање. Ово преузимање поништава то екранирање. Тестови стварног обрађивача ван мреже показују да се за тај формат складиштења очувавају све вредности бајтова и дословне обрнуте косе црте.
Ово није гаранција за сваки историјски запис или запис увезен споља. Обрађивач увек декодира сачувани бинарни објекат и не открива да ли је запис увезен без очекиваног екранирања. Такође не користи путању до датотеке као резервну могућност када запис нема сачувани бинарни објекат. Такви записи могу дати измењене бајтове или празан резултат. Проверите резултат и затражите од подршке да испита проблематични прилог уместо да мењате документ корисника или претпостављате да његови метаподаци доказују да је датотека доступна.
Тренутни портал прво користи ову API руту и има додатну локалну обраду за резервне поступке. Успешно преузимање преко портала не доказује да се сваки стари запис може преузети директно преко овог API.
Грешке и последице
За пројекат који не постоји, који је избрисан или који не припада налогу враћа се API код 404 са поруком да пројекат није пронађен. За отпремљени прилог који не постоји у оквиру пројекта који припада налогу враћа се API код 404 са поруком да документ није пронађен. Читајте тела одговора са грешкама из API, као и HTTP статус. За запис који постоји, али нема употребљиве сачуване бајтове, овај обрађивач нема посебан поуздан одговор да документ није пронађен.
Прегледана крајња тачка чита један прилог. Она не отпрема, не мења и не уклања документ, не подноси захтев за пренос бројева и не задужује налог. Прилози за пренос бројева могу садржати податке о идентитету, обрачуну или овлашћењима: користите их само у оквиру одобрених радних поступака налога и не укључујте их у јавне евиденције, аналитику или снимке екрана за документацију.