Διαχείριση εφαρμογών βιβλιοθήκης

Διαβάστε εφαρμογές και εκδόσεις, επεξεργαστείτε μεταδεδομένα και tracks, και αποκρύψτε ή επαναφέρετε δημοσιευμένο περιεχόμενο.

Πρόσβαση και εύρος

Κάθε διαδρομή απαιτεί X-API-Key με LIBRARY_MANAGE. Το επικυρωμένο κλειδί καθορίζει την εταιρεία· τα αιτήματα δεν έχουν παράμετρο tenant ή εταιρείας. Ένα υπάρχον κλειδί με LIBRARY_MANAGE μπορεί να χρησιμοποιεί αυτές τις διαδρομές χωρίς άλλη παραχώρηση. Η ευαίσθητη άδεια είναι από προεπιλογή απενεργοποιημένη· τα κλειδιά που δεν την έχουν δεν την αποκτούν αυτόματα.

Το LIBRARY_MANAGE είναι ευαίσθητη άδεια σε επίπεδο εταιρείας για μεταφορτώσεις APK και διαχείριση εφαρμογών. Δεν παρέχει ανάθεση πολιτικών, εντολές συσκευών, παροχή (provisioning) ούτε λειτουργίες λογαριασμού.

Το LIBRARY_MANAGE καλύπτει τις μεταφορτώσεις APK και τις διαδρομές διαχείρισης εφαρμογών που περιγράφονται παρακάτω. Τα δημόσια API για αρχεία, επαφές και άλλους πόρους της βιβλιοθήκης δεν είναι ακόμη διαθέσιμα. Αυτή η άδεια δεν παρέχει ανάθεση πολιτικών, εντολές συσκευών, παροχή (provisioning) ούτε διαχείριση λογαριασμού.

Οι αλλαγές στο εμφανιζόμενο όνομα και στο εικονίδιο χρησιμοποιούν αναβαλλόμενες διανομές μεταδεδομένων. Η απόκρυψη μιας εφαρμογής χρησιμοποιεί την υπάρχουσα σάρωση αφαίρεσης· η επαναφορά περιεχομένου και η προσθήκη tracks χρησιμοποιούν τις υπάρχουσες διαδρομές συγχρονισμού. Οι αλλαγές κατηγοριών ενημερώνουν τις αποθηκευμένες ετικέτες. Η αφαίρεση ενός track ή η απόκρυψη μίας από περισσότερες δημοσιευμένες εκδόσεις δεν προγραμματίζει άμεσο συγχρονισμό των συσκευών. Μια απάντηση του API επιβεβαιώνει την εγγραφή στον χώρο αποθήκευσης, όχι τον συγχρονισμό ή την εγκατάσταση στις συσκευές.

Μεταφορτώστε ένα υπογεγραμμένο APK με τον ξεχωριστό οδηγό μεταφορτώσεων APK.

Endpoints

https://api.nomid.tech/emm/api/v1

ΜέθοδοςEndpointΠεριγραφή
GET/library/appsΠαραθέτει τις ορατές εφαρμογές ανά σελίδα· το includeHidden μπορεί να συμπεριλάβει τις κρυφές εφαρμογές.
GET/library/apps/{packageName}Επιστρέφει μία εφαρμογή, ακόμη και όταν είναι κρυφή.
GET/library/apps/{packageName}/versionsΠαραθέτει τις εκδόσεις· το includeHidden μπορεί να συμπεριλάβει τις κρυφές εκδόσεις.
GET/library/apps/{packageName}/versions/{versionCode}Επιστρέφει μία έκδοση, ακόμη και όταν είναι κρυφή. Δώστε το environment της όταν δεν είναι κενό.
PATCH/library/apps/{packageName}/display-nameΟρίζει ένα εμφανιζόμενο όνομα ή το επαναφέρει στο όνομα του APK.
PATCH/library/apps/{packageName}/categoriesΑντικαθιστά τις ετικέτες κατηγορίας της εφαρμογής.
POST/library/apps/{packageName}/iconΜεταφορτώνει ένα εικονίδιο ως multipart form-data μέσω του πεδίου file.
DELETE/library/apps/{packageName}/iconΑφαιρεί το προσαρμοσμένο εικονίδιο.
DELETE/library/apps/{packageName}Αποκρύπτει μια υπάρχουσα εφαρμογή· επιστρέφει 204 και δεν τη διαγράφει φυσικά.
POST/library/apps/{packageName}/publishΕπαναφέρει μια εφαρμογή με ιδιοδυναμία (idempotent)· επιστρέφει την εφαρμογή.
DELETE/library/apps/{packageName}/versions/{versionCode}Αποκρύπτει μια υπάρχουσα έκδοση· επιστρέφει 204. Για την τελευταία δημοσιευμένη έκδοση, η εφαρμογή αποκρύπτεται ενώ η έκδοση αυτή παραμένει δημοσιευμένη ώστε να είναι δυνατή η επαναφορά. Δώστε το environment της όταν δεν είναι κενό.
POST/library/apps/{packageName}/versions/{versionCode}/publishΕπαναφέρει μια έκδοση και, όταν χρειάζεται, την εφαρμογή της. Δώστε το environment της όταν δεν είναι κενό.
GET/library/apps/{packageName}/tracksΠαραθέτει την τελευταία δημοσιευμένη έκδοση για κάθε track μιας δημοσιευμένης εφαρμογής. Σε ίσους κωδικούς έκδοσης υπερισχύει το λεξικογραφικά υψηλότερο environment.
PUT/library/apps/{packageName}/versions/{versionCode}/tracks/{trackName}Αντιστοιχίζει μια δημοσιευμένη έκδοση σε ένα track· επιστρέφει την αντιστοίχιση. Δώστε το environment της όταν δεν είναι κενό.
DELETE/library/apps/{packageName}/versions/{versionCode}/tracks/{trackName}Αφαιρεί την αντιστοίχιση ενός track· επιστρέφει 204. Δώστε το environment της όταν δεν είναι κενό.

Αιτήματα και απαντήσεις

Το GET /library/apps δέχεται page (προεπιλογή 0), size (προεπιλογή 50, μέγιστο 100) και includeHidden (προεπιλογή false). Η απάντηση περιέχει content (AppDto[]), page, size, totalElements και totalPages.

Η συλλογή εκδόσεων έχει ως προεπιλογή includeHidden=false και επιστρέφει εκδόσεις με versionCode, environment, status, displayName, displayVersion, createdAt, sha256, fileSizeBytes, tracks και checkSummary (η κατάσταση και το πλήθος ευρημάτων της πιο πρόσφατης αναφοράς ελέγχου της μεταφόρτωσης· null για εκδόσεις που μεταφορτώθηκαν πριν υπάρξουν οι έλεγχοι· βλ. τον οδηγό μεταφορτώσεων APK). Κάθε ανάγνωση, απόκρυψη, δημοσίευση ή αλλαγή track που αφορά μια έκδοση επιλέγει ακριβώς τα packageName, versionCode και environment. Η παράλειψη του environment επιλέγει το κενό environment. Δώστε το πάντα για έκδοση με μη κενό environment, ακόμη και αν ο κωδικός έκδοσής της είναι μοναδικός.

Το endpoint του εμφανιζόμενου ονόματος δέχεται συμβολοσειρά displayName· η τιμή null ή η κενή τιμή επαναφέρει το όνομα, διαφορετικά το όριο είναι 100 χαρακτήρες. Το endpoint κατηγοριών απαιτεί πίνακα categories με το πολύ 50 μη κενές ετικέτες, καθεμία έως 100 χαρακτήρες. Η μεταφόρτωση εικονιδίου χρησιμοποιεί το πεδίο multipart file.

Τα ονόματα track περικόπτονται από κενά και πρέπει να έχουν 1 έως 10 χαρακτήρες. Οι αντιστοιχίσεις track με PUT και DELETE απαιτούν δημοσιευμένη εφαρμογή και δημοσιευμένη έκδοση. Δώστε πάντα το environment της έκδοσης όταν δεν είναι κενό.

Τα προσαρμοσμένα εικονίδια πρέπει να είναι PNG ή JPEG, έως 1 MiB, τουλάχιστον 192 pixel σε κάθε πλευρά και τετράγωνα με ανοχή 2%. Ο διακομιστής κανονικοποιεί τις αποδεκτές εικόνες σε PNG 512 pixel.

PATCH /library/apps/com.example.app/display-name
Content-Type: application/json

{"displayName":"Field App"}

PATCH /library/apps/com.example.app/categories
Content-Type: application/json

{"categories":["Field tools"]}

Ορατότητα και συμπεριφορά εκδόσεων

Η διαγραφή μιας εφαρμογής την αποκρύπτει διατηρώντας τα δεδομένα της. Η δημοσίευση της εφαρμογής την επαναφέρει και μπορεί να επαναληφθεί με ασφάλεια. Το endpoint μίας εφαρμογής μπορεί να εξετάσει μια κρυφή εφαρμογή· η συλλογή εφαρμογών παραθέτει τις ορατές εφαρμογές, εκτός αν χρησιμοποιηθεί includeHidden=true.

Η διαγραφή μιας υπάρχουσας έκδοσης την αποκρύπτει, εκτός αν είναι η τελευταία δημοσιευμένη έκδοση: τότε η εφαρμογή αποκρύπτεται και η έκδοση αυτή παραμένει δημοσιευμένη ώστε να μπορεί να επαναφερθεί η εφαρμογή. Μια κρυφή έκδοση μπορεί να δημοσιευθεί ξανά· η δημοσίευση μιας έκδοσης μπορεί επίσης να επαναφέρει την εφαρμογή της.

Η συλλογή tracks επιστρέφει την τελευταία δημοσιευμένη έκδοση ανά track για μια δημοσιευμένη εφαρμογή. Όταν οι κωδικοί έκδοσης ισοβαθμούν, υπερισχύει το λεξικογραφικά υψηλότερο environment. Οι αλλαγές σε tracks δεν δημιουργούν αναθέσεις πολιτικών.

Σφάλματα

Το 401 σημαίνει ότι το κλειδί λείπει, δεν είναι έγκυρο, έχει λήξει ή έχει ανακληθεί. Το 403 σημαίνει ότι δεν έχει LIBRARY_MANAGE. Ελέγξτε τη ρύθμιση του κλειδιού χωρίς να το εκτυπώσετε.

Το 404 σημαίνει ότι η ζητούμενη εφαρμογή ή έκδοση δεν υπάρχει στην εταιρεία του κλειδιού ή ότι η λειτουργία απαιτεί δημοσιευμένη εφαρμογή ή έκδοση. Οι αλλαγές εμφανιζόμενου ονόματος, κατηγοριών και προσαρμοσμένου εικονιδίου απαιτούν δημοσιευμένη εφαρμογή· επαναφέρετε μια κρυφή εφαρμογή πριν επεξεργαστείτε τα μεταδεδομένα. Οι λειτουργίες track απαιτούν δημοσιευμένη εφαρμογή και έκδοση. Το αναγνωριστικό άλλης εταιρείας δεν αποκαλύπτεται.

Το 400 σημαίνει ότι μια τιμή αιτήματος ή ερωτήματος δεν είναι έγκυρη. Διορθώστε την πριν επαναλάβετε την προσπάθεια.

Επιλέξτε την ώρα σας

Φόρτωση...
Άνοιγμα ημερολογίου κρατήσεων