גישה לחשבון ולפרויקט
יש להשתמש בחשבון API פעיל דרך HTTPS, מכתובת IP מורשית. הפרויקט חייב להשתייך לחשבון זה ואסור שיהיה מחוק. יש להשתמש במזהה הייחודי של הפרויקט מתוך תהליך הזמנת הניוד, ולא במזהה המספרי שלו במסד הנתונים או במספר טלפון. בעת בניית בקשה, יש לקודד את מזהה הפרויקט בקידוד כתובות URL.
בקשה
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID"יש להתייחס לתגובה זו כאל מידע סודי
התגובה המלאה כוללת פרטי חיוב אצל המפעיל שממנו מתניידים, ובכללם הערך השמור של billing_pin, חשבון החיוב, מספר הטלפון, הכתובת, החברה ופרטי איש הקשר המורשה. ה־API אינו מסתיר את השדות האלה. יש לבקש רק את המצב או את רשימת המספרים כאשר זה כל שנדרש לתהליך העבודה. אין לשמור את תגובת הפרטים המלאה באחסון הדפדפן, במערכות ניתוח נתונים, ביומנים ציבוריים או בצילומי מסך לתמיכה, ויש לחשוף רק את השדות הנחוצים ללקוח מורשה.
מבנה התגובה
דוגמה פיקטיבית לשדות נבחרים; ייתכן שיוחזרו שדות נוספים.
{
"status": {
"code": 200,
"msg": "Project Detail"
},
"response": {
"project": {
"id": 11,
"uniqueid": "PROJECT_EXAMPLE",
"project_name": "Example transfer",
"location": "US",
"status": 0,
"status_str": "Pending"
},
"counts": {
"total": 0,
"pending": 0,
"in_progress": 0,
"completed": 0,
"rejected": 0
},
"numbers": [],
"events": [],
"uploads": []
}
}דוגמה זו חלקית במכוון ואינה כוללת שום פרטי אימות לחיוב או ערכים של פרטי קשר אישיים. השמטתם מהדוגמה אינה מעידה על כך שהם מושחרים בתגובה האמיתית.
| סעיף | תוכן |
|---|---|
| project | מזהה מספרי של הרשומה, מזהה ייחודי של הפרויקט, שם הפרויקט, מיקום, נתוני חיוב, קשר וכתובת שמורים, זמן יצירה ומצב מחושב. האיות של השדה הוותיק המציין את המפעיל שממנו מתניידים הוא loosing_carrier. |
| counts | המספר הכולל של רשומות מספרי הטלפון ומונים למצבים Pending, In Progress, Completed ו־Rejected. |
| numbers | אותו מבנה נתוני מספרים שמחזירה נקודת הקצה של רשימת מספרי הפרויקט, לרבות הערות לקוח וערכי תזמון שמורים. |
| events | רשומות אירועים שמורות ושדות מטען נתונים גולמיים או מפוענחים, בכפוף למגבלות הנראות והפורמט של נקודת הקצה של האירועים. |
| uploads | מטא־נתונים של מסמכים: מזהה מספרי, upload_type, file_name, file_extension, date_created ו־download_url יחסי. גם כתובת זו מחייבת אימות של החשבון. |
פירוש הסיכום והמטא־נתונים
בחישוב המצב ניתנת עדיפות ל־In Progress, לאחר מכן ל־Pending, אחריו ל־Completed ולבסוף ל־Rejected, עם Pending כברירת מחדל כשאין התאמה. סיכום במצב Completed יכול להופיע גם כשיש מספרים שנדחו. יש לבדוק את המונים ואת מצבי המספרים, ולא להניח שהניוד הושלם עבור כל מספר.
התגובה מכילה מטא־נתונים של מסמכים, ולא את הבתים של הקבצים. אין בה חלוקה לעמודים או סמן לקריאה מצטברת. שאילתות הפרטים והרשימה הן פעולות קריאה נפרדות, ולא תמונת מצב אחת שמובטחת בה עקביות טרנזקציונית. התאריכים נשארים כפי שנשמרו, ללא המרת אזור זמן מתועדת. יש להשתמש ב־uniqueid בנתיבי הפרויקט; מזהה הפרויקט המספרי אינו יכול לשמש במקומו.
שגיאות ומגבלות
יש לבדוק גם את תגובת ה־HTTP וגם את status.code/status.msg. פרויקט חסר, מחוק או שאינו בבעלות החשבון מחזיר קוד API של 404 עם הודעה שהפרויקט לא נמצא. חלות גם דרישות אימות והגבלות על כתובת ה־IP של המקור. הדוגמאות אינן שולחות בקשה בפועל, ותגובה מוצלחת אינה הוכחה לכך שמפעיל קיבל בקשת ניוד או השלים ניוד.
השפעות ותהליך עבודה
זהו נתיב הפרטים הקנוני שבו משתמשת תצוגת הזמנת הניוד בפורטל הנוכחי. הפורטל ממפה שדות עבור ממשק המשתמש שלו ומעצב בעצמו את הנתונים המוצגים ללקוח; אין להניח שתגובת ה־API הגולמית זהה ל־JSON של הפורטל או לאופן הצגתו. רכיב הטיפול בפרטים שנבדק אינו משנה את הפרויקט ואינו יוזם ישירות בקשה למפעיל או חיוב.