Punkt końcowy zasobów BI
Uzyskaj dostęp do danych zasobów w spłaszczonym formacie zoptymalizowanym dla narzędzi Business Intelligence. Wszystkie pola znajdują się na najwyższym poziomie, co ułatwia bezpośrednie mapowanie kolumn.
Kluczowa różnica w stosunku do publicznego API
API BI zwraca całkowicie płaską strukturę - brak zagnieżdżonych obiektów. To sprawia, że jest idealne dla narzędzi oczekujących danych tabelarycznych:
- •Wszystkie pola są na najwyższym poziomie (bez zagnieżdżania)
- •Tablice są konwertowane na ciągi znaków oddzielone przecinkami
- •Obiekty są serializowane jako ciągi JSON
Dostępne punkty końcowe
| Metoda | Punkt końcowy | Opis |
|---|---|---|
| GET | /api/bi/v1/assets | Lista wszystkich zasobów w spłaszczonym formacie |
| GET | /api/bi/v1/assets/count | Uzyskaj całkowitą liczbę zasobów |
| GET | /api/bi/v1/assets/{assetId} | Uzyskaj konkretny zasób według ID |
/assetsLista wszystkich zasobów
Zwraca stronicowaną listę zasobów ze wszystkimi polami spłaszczonymi do poziomu głównego. Idealne do masowego eksportu danych do narzędzi BI.
Parametry zapytania
| Parameter | Type | Description |
|---|---|---|
| status | string | Filtruj według statusu zasobu (np. AKTYWNY, NIEAKTYWNY) |
| policy | string | Filtruj według nazwy ścieżki przypisanej polityki |
| page | integer | Numer strony (indeksowany od 0, domyślnie: 0) |
| size | integer | Rozmiar strony (domyślnie: 20, maks.: 100) |
| sort | string | Pole sortowania i kierunek (np. lastSyncAt,desc) |
curl -X GET "https://api.nomid.tech/emm/api/bi/v1/assets?status=ACTIVE&page=0&size=100" \
-H "X-API-Key: nm_acme_abc123..."{
"content": [
{
"pathName": "enterprises/acme/assets/asset_abc123",
"identification": "Warehouse Scanner 01",
"name": "WH-SCANNER-001",
"description": "Main warehouse barcode scanner",
"serialNumber": "ABC123XYZ",
"imeis": "123456789012345",
"brand": "Samsung",
"model": "Galaxy Tab Active3",
"status": "ACTIVE",
"lastSyncAt": "2026-01-29T08:15:00Z",
"enrollmentTime": "2025-01-15T10:30:00Z",
"policyPathName": "enterprises/acme/policies/warehouse",
"policyDisplayName": "Warehouse Policy",
"policyGroupName": "Warehouse",
"metadata": "{\"department\":\"logistics\",\"location\":\"warehouse-a\"}",
"tags": "warehouse,scanner,critical",
"operatingSystem": "Android",
"operatingSystemVersion": "13"
}
],
"totalElements": 156,
"totalPages": 2,
"size": 100,
"number": 0
}/assets/countPobierz liczbę zasobów
Zwraca całkowitą liczbę zasobów pasujących do kryteriów filtrowania. Przydatne do obliczeń paginacji.
curl -X GET "https://api.nomid.tech/emm/api/bi/v1/assets/count?status=ACTIVE" \
-H "X-API-Key: nm_acme_abc123..."{
"count": 156
}/assets/{assetId}Uzyskaj konkretny zasób
Zwraca pojedynczy zasób w spłaszczonym formacie według jego identyfikatora.
curl -X GET "https://api.nomid.tech/emm/api/bi/v1/assets/asset_abc123" \
-H "X-API-Key: nm_acme_abc123..."Schemat BiAssetDto
Każdy obiekt zasobu podąża za płaską strukturą BiAssetDto. Wszystkie pola są ciągami znaków na poziomie głównym - brak zagnieżdżonych obiektów lub tablic.
| Field | Type | Description |
|---|---|---|
| Identyfikatory | ||
| pathName | string | Pełna ścieżka zasobu (np. enterprises/acme/assets/abc123) |
| identification | string | Przyjazny identyfikator zasobu |
| name | string | Nazwa urządzenia |
| description | string | Opis urządzenia |
| Informacje o sprzęcie | ||
| serialNumber | string | Numer seryjny urządzenia |
| imeis | string | Numery IMEI (rozdzielone przecinkami, jeśli jest ich wiele) |
| brand | string | Producent/marka urządzenia |
| model | string | Nazwa modelu urządzenia |
| Status i znaczniki czasu | ||
| status | string | Status zasobu (AKTYWNY, NIEAKTYWNY) |
| lastSyncAt | string | Znacznik czasu ostatniej synchronizacji (ISO 8601) |
| enrollmentTime | string | Znacznik czasu rejestracji urządzenia (ISO 8601) |
| Informacje o polisie | ||
| policyPathName | string | Pełna ścieżka przypisanej polityki |
| policyDisplayName | string | Czytelna dla człowieka nazwa polityki |
| policyGroupName | string | Grupa polityk do kategoryzacji |
| Dane niestandardowe | ||
| metadata | string | Niestandardowe metadane jako ciąg znaków JSON |
| tags | string | Tagi jako ciąg znaków oddzielony przecinkami |
| System operacyjny | ||
| operatingSystem | string | Nazwa systemu operacyjnego (np. Android) |
| operatingSystemVersion | string | Numer wersji systemu operacyjnego |
Public API vs BI API
Główna różnica polega na strukturze odpowiedzi. Public API wykorzystuje zagnieżdżone obiekty do organizacji, podczas gdy BI API spłaszcza wszystko dla łatwego mapowania kolumn.
Public API (Zagnieżdżony)
// Public API Response (nested)
{
"pathName": "enterprises/acme/assets/abc123",
"customData": {
"metadata": { "department": "logistics" },
"tags": ["warehouse", "scanner"]
},
"specifications": {
"imeis": ["123456789012345"],
"serialNumber": "ABC123XYZ",
"brand": "Samsung"
},
"managedDevice": {
"policyPathName": "enterprises/acme/policies/warehouse"
}
}BI API (Spłaszczony)
// BI API Response (flat)
{
"pathName": "enterprises/acme/assets/abc123",
"metadata": "{\"department\":\"logistics\"}",
"tags": "warehouse,scanner",
"imeis": "123456789012345",
"serialNumber": "ABC123XYZ",
"brand": "Samsung",
"policyPathName": "enterprises/acme/policies/warehouse"
}Paginacja
Wyniki są stronicowane przy użyciu tego samego formatu co Public API. Użyj parametrów page i size, aby nawigować po dużych zbiorach danych.
Wskazówka: Do eksportu masowego użyj size=100 (maksymalnie) i iteruj przez wszystkie strony. Powyższe przykłady Power BI i Python pokazują, jak automatycznie pobrać wszystkie strony.