Best Practices for Application Development

Voltar para o inÌcio

Para aumentar a confianÁa e o conforto dos exemplos de API de identidade, obter os detalhes do usu·rios e os membros DaaS ao conceder seu acesso de aplicativo aos seus dados, È importante dar transparÍncia ‡ forma como seus dados ser„o usados. Siga essas sugestıes para ajudar seu aplicativo a ter sucesso na entrega de valor aos membros da HP DaaS.

 

APIs auto-gerenciadas x gerenciadas por parceiros

 

Os relatÛrios da Gest„o proativa de dispositivo HP como um serviÁo com TechPulse (doravante referida como Gest„o proativa) oferecem an·lises amplas sobre otimizaÁ„o de planejamento e custo e capacidades de gest„o de serviÁo de dispositivos inscritos na Gest„o proativa.

Os clientes que desejam gerenciar as an·lises de Gest„o Proativa por conta prÛpria s„o chamados de "clientes auto-gerenciados". Os clientes que optarem por terceirizar a gest„o da an·lise de Gest„o proativa para seus parceiros preferidos s„o chamados de "clientes gerenciados por parceiros".

Os clientes auto-gerenciados sÛ podem obter dados para sua conta da Gest„o proativa. Os clientes gerenciados por parceiros podem obter dados para todos os seus clientes gerenciados na Gest„o proativa. Por exemplo, se um parceiro de Gest„o proativa A est· gerenciando trÍs clientes (X, Y e Z), invocando uma API HP TechPulse Analytics, ela retornar· informaÁıes de an·lise para todos os trÍs clientes separadamente para APIs de detalhes e informaÁıes agregadas para todos os trÍs clientes na API Resumo.

 

Exemplo de uma solicitaÁ„o POST: API Resumo auto-gerenciada
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/reports/softuti/winApplications/type/graph HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Bearer <ACCESS_TOKEN>
Body: SEM necessidade especificar qualquer ID de locat·rio aqui

Resposta de HTTP
{
    "totalResults": 1,
    "startIndex": 0,
    "itemsPerPage": 1,
    "resources": [
        {
            "byPercentages": [
                {
                    "appName": "Windows Explorer",
                    "usage": 52,44
                },
                {
                    "appName": "Internet Explorer",
                    "usage": 51,87
                }
            ],
            "byUsageHours": [
                {
                    "appName": "Windows Explorer",
                    "usage": 81,6
                },
                {
                    "appName": "Internet Explorer",
                    "usage": 50,27
                }
            ]
        }
    ]
}

 

Exemplo de uma solicitaÁ„o POST: API de detalhes auto-gerenciados
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/softuti/summary/type/grid?count=2 HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Bearer <ACCESS_TOKEN>
Body: SEM necessidade especificar qualquer ID de locat·rio aqui

Resposta de HTTP
{
    "totalResults": 31,
    "startIndex": 0,
    "itemsPerPage": 2,
    "resources": [
        {
            "appName": "ApplicationFrameHost",
            "appVersion": "",
            "deviceCount": "105873",
            "appUsageCount": "63919",
            "appUsagePercent": "60,37",
            "appUsageHours": "8630562,00",
            "appAvgUsageTime": "81,52",
            "rankAppUsagePercent": "1",
            "rankAppUsageHrs": "3"
        },
        {
            "appName": "Windows Explorer",
            "appVersion": "10.0.15063.0",
            "deviceCount": "105873",
            "appUsageCount": "55523",
            "appUsagePercent": "52,44",
            "appUsageHours": "8639202,00",
            "appAvgUsageTime": "81,60",
            "rankAppUsagePercent": "2",
            "rankAppUsageHrs": "2"
        }
    ]
}

 

Exemplo de uma solicitaÁ„o POST: API de detalhes gerenciados por parceiros
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/hwinv/details/type/grid?filter=devicetype eq "Desktop" HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Token de acesso do portador
Body: SEM IDs de locat·rios

Resposta de HTTP
{
    "totalResults": 11,
    "startIndex": 0,
    "itemsPerPage": 11,
    "resources": [
        {
            "counterId": 134375,
            "deviceName": "device-name",
            "deviceType": "Desktop",
            "deviceMfg": "HP",
            "deviceModel": "HP ProDesk 600 G4 SFF",
            "deviceSn": "device-sn",
            "deviceOs": "Windows 10",
            "dateEnrolled": "09/29/2018",
            "endDate": "03/01/2021",
            "lastOnlineDate": "11/28/2018 at 03:49 AM (UTC)",
            "memory": "24 GB  2667 MHz",
            "graphics": "Intel(R) UHD Graphics 630",
            "processor": "Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz",
            "mfgDate": "01/31/2018",
            "dataAsOfDate": "11/29/2018",
            "deviceOsOriginal": "Windows 10",
            "warStatus": "In warranty",
            "locationcc": "United States",
            "dateListMonth": "Sep 2018",
            "deviceId": "123456",
            "companyName": "company-name",
            "osrelease": "Unknown",
            "osversion": "Unknown",
            "osreleselToggaleEnabled": true
        },
        {
            "counterId": 97989,
            "deviceName": "device-name",
            "deviceType": "Desktop",
            "deviceMfg": "HP",
            "deviceModel": "HP Elite Slice",
            "deviceSn": "device-sn",
            "deviceOs": "Windows 10",
            "dateEnrolled": "08/31/2018",
            "endDate": null,
            "lastOnlineDate": "11/28/2018 at 08:33 AM (UTC)",
            "memory": "8 GB  2400 MHz",
            "graphics": "Intel(R) HD Graphics 630",
            "processor": "Intel(R) Core(TM) i3-7310T CPU @ 3.40GHz",
            "mfgDate": "01/03/2018",
            "dataAsOfDate": "11/29/2018",
            "deviceOsOriginal": "Windows 10",
            "warStatus": null,
            "locationcc": "United States",
            "dateListMonth": "Aug 2018",
            "deviceId": "123456",
            "companyName": "company-name",
            "osrelease": "10.0.17134.407",
            "osversion": "10.0.17134.407",
            "osreleselToggaleEnabled": true
        },
        ... // 11 registros
    ]
}

 

Exemplo de uma solicitaÁ„o POST: API Resumo gerenciada por parceiros
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/hwinv/deviceByOS/type/graph?filter=devicetype eq "Desktop" HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Token de acesso do portador
Body: SEM IDs de locat·rios

Resposta de HTTP
{
    "totalResults": 3,
    "startIndex": 0,
    "itemsPerPage": 3,
    "resources": [
        {
            "deviceOs": "Windows 10",
            "total": 8,
            "data": null,
            "osRelease": null,
            "dataForOSRelease": false,
            "osReleaseData": [
                {
                    "deviceOs": "Windows 10",
                    "total": 3,
                    "data": null,
                    "osRelease": "10.0.17134.407",
                    "dataForOSRelease": true,
                    "osReleaseData": null,
                    "deviceos_original_latest": null,
                    "deviceOsMajorVersion": null,
                    "productOs": null,
                    "osreleselToggaleEnabled": false
                },
                ...// 4 registros
            ],
            "deviceos_original_latest": null,
            "deviceOsMajorVersion": "Windows",
            "productOs": null,
            "osreleselToggaleEnabled": true
        },
        {
            "deviceOs": "Windows 8",
            "total": 2,
            "data": null,
            "osRelease": null,
            "dataForOSRelease": false,
            "osReleaseData": [
                ...// dados de amostra removidos
            ],
            "deviceos_original_latest": null,
            "deviceOsMajorVersion": "Windows",
            "productOs": null,
            "osreleselToggaleEnabled": true
        },
        {
            "deviceOs": "OSX 10",
            "total": 1,
            "data": null,
            "osRelease": null,
            "dataForOSRelease": false,
            "osReleaseData": [
                {
                    "deviceOs": "OSX 10",
                    "total": 1,
                    "data": null,
                    "osRelease": "OS X Version 10.14 (Build 18A391)",
                    "dataForOSRelease": true,
                    "osReleaseData": null,
                    "deviceos_original_latest": null,
                    "deviceOsMajorVersion": null,
                    "productOs": null,
                    "osreleselToggaleEnabled": false
                }
            ],
            "deviceos_original_latest": null,
            "deviceOsMajorVersion": "OSX",
            "productOs": null,
            "osreleselToggaleEnabled": true
        }
    ]
}

 

Exemplo de uma solicitaÁ„o POST: API de detalhes gerenciados por parceiros
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/hwinv/details/type/grid HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Token de acesso do portador
Body:
{
    "tenants": [ "tenant-uuid-1","tenant-uuid-2" ],
    "filter":" ( devicetype eq \"Desktop\" ) "
}

Resposta de HTTP
{
    "totalResults": 3,
    "startIndex": 0,
    "itemsPerPage": 3,
    "resources": [
        {
            "counterId": 134375,
            "deviceName": "device-name",
            "deviceType": "Desktop",
            "deviceMfg": "HP",
            "deviceModel": "HP ProDesk 600 G4 SFF",
            "deviceSn": "device-sn",
            "deviceOs": "Windows 10",
            "dateEnrolled": "09/29/2018",
            "endDate": "03/01/2021",
            "lastOnlineDate": "11/28/2018 at 03:49 AM (UTC)",
            "memory": "24 GB  2667 MHz",
            "graphics": "Intel(R) UHD Graphics 630",
            "processor": "Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz",
            "mfgDate": "01/31/2018",
            "dataAsOfDate": "11/29/2018",
            "deviceOsOriginal": "Windows 10",
            "warStatus": "In warranty",
            "locationcc": "United States",
            "dateListMonth": "Sep 2018",
            "deviceId": "123456",
            "companyName": "company-name",
            "osrelease": "10.0.17763.134",
            "osversion": "10.0.17763.134",
            "osreleselToggaleEnabled": true
        },
        {
            "counterId": 97989,
            "deviceName": "device-name",
            "deviceType": "Desktop",
            "deviceMfg": "HP",
            "deviceModel": "HP Elite Slice",
            "deviceSn": "device-sn",
            "deviceOs": "Windows 10",
            "dateEnrolled": "08/31/2018",
            "endDate": null,
            "lastOnlineDate": "11/28/2018 at 08:33 AM (UTC)",
            "memory": "8 GB  2400 MHz",
            "graphics": "Intel(R) HD Graphics 630",
            "processor": "Intel(R) Core(TM) i3-7310T CPU @ 3.40GHz",
            "mfgDate": "01/03/2018",
            "dataAsOfDate": "11/29/2018",
            "deviceOsOriginal": "Windows 10",
            "warStatus": null,
            "locationcc": "United States",
            "dateListMonth": "Aug 2018",
            "deviceId": "123456",
            "companyName": "company-name",
            "osrelease": "10.0.17134.407",
            "osversion": "10.0.17134.407",
            "osreleselToggaleEnabled": true
        },{
            "counterId": 21649,
            "deviceName": "device-name",
            "deviceType": "Desktop",
            "deviceMfg": "APPLE",
            "deviceModel": "Macmini6 1",
            "deviceSn": "device-sn",
            "deviceOs": "OSX 10",
            "dateEnrolled": "09/09/2018",
            "endDate": null,
            "lastOnlineDate": "11/26/2018 at 01:54 PM (UTC)",
            "memory": "8 GB 1600 MHz",
            "graphics": "Intel HD Graphics 4000",
            "processor": "Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz",
            "mfgDate": "Unknown",
            "dataAsOfDate": "29/11/2018",
            "deviceOsOriginal": "OSX 10",
            "warStatus": null,
            "locationcc": "United States",
            "dateListMonth": "Sep 2018",
            "deviceId": "123456",
            "companyName": "company-name",
            "osrelease": "OS X Version 10.14 (Build 18A391)",
            "osversion": "OS X Version 10.14 (Build 18A391)",
            "osreleselToggaleEnabled": true
        }
    ]
}

 

Exemplo de uma solicitaÁ„o POST: API Resumo gerenciada por parceiros
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/hwinv/deviceByOS/type/graph HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Bearer <Access Token>
Body:
{
    "tenants": [ "tenant-uuid-1","tenant-uuid-2" ],
    "filter":" ( devicetype eq \"Desktop\" ) "
}

Resposta de HTTP
{
    "totalResults": 2,
    "startIndex": 0,
    "itemsPerPage": 2,
    "resources": [
        {
            "deviceOs": "Windows 10",
            "total": 2,
            "data": null,
            "osRelease": null,
            "dataForOSRelease": false,
            "osReleaseData": [
                {
                    "deviceOs": "Windows 10",
                    "total": 3,
                    "data": null,
                    "osRelease": "10.0.17134.407",
                    "dataForOSRelease": true,
                    "osReleaseData": null,
                    "deviceos_original_latest": null,
                    "deviceOsMajorVersion": null,
                    "productOs": null,
                    "osreleselToggaleEnabled": false
                },
                {
                    "deviceOs": "Windows 10",
                    "total": 1,
                    "data": null,
                    "osRelease": "10.0.17763.134",
                    "dataForOSRelease": true,
                    "osReleaseData": null,
                    "deviceos_original_latest": null,
                    "deviceOsMajorVersion": null,
                    "productOs": null,
                    "osreleselToggaleEnabled": false
                }
            ],
            "deviceos_original_latest": null,
            "deviceOsMajorVersion": "Windows",
            "productOs": null,
            "osreleselToggaleEnabled": true
        },
        {
            "deviceOs": "OSX 10",
            "total": 1,
            "data": null,
            "osRelease": null,
            "dataForOSRelease": false,
            "osReleaseData": [
                {
                    "deviceOs": "OSX 10",
                    "total": 1,
                    "data": null,
                    "osRelease": "OS X Version 10.14 (Build 18A391)",
                    "dataForOSRelease": true,
                    "osReleaseData": null,
                    "deviceos_original_latest": null,
                    "deviceOsMajorVersion": null,
                    "productOs": null,
                    "osreleselToggaleEnabled": false
                }
            ],
            "deviceos_original_latest": null,
            "deviceOsMajorVersion": "OSX",
            "productOs": null,
            "osreleselToggaleEnabled": true
        }
    ]
}

 

 

 

Identificadores de empresas, usu·rios e dispositivos

 

Todas as nossas APIs de an·lise e incidente aceitam identificadores exclusivos da empresa/dispositivo/usu·rio do tipo GUID, enquanto as APIs respondem com identificadores numÈricos. Um mapa de identidade API pode ser chamado para obter o identificador do tipo GUID correspondente a identificadores numÈricos.

Exemplos de API de Mapa de identidade
SolicitaÁ„o de HTTP
GET /analytics/v1/reports/id/{int-id}/type/{id-type} HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Token de acesso do portador

Resposta de HTTP
Para dispositivo:
{
    "intId": 12345,
    "idType": "deviceid",
    "uuid": "device-uuid-1"
}

Para usu·rio:
{
    "intId": 1234,
    "idType": "userid",
    "uuid": "user-uuid-1"
}

Para empresa:
{
    "intId": 1458,
    "idType": "companyid",
    "uuid": "tenant-uuid-1"
}

 

Esta È uma API de ServiÁo de identidade para obter todos os detalhes dos usu·rios ou com base em user_id.

Exemplos de API de Identidade: Para obter os detalhes do usu·rio
SolicitaÁ„o de HTTP
GET /analytics/v1/identity/users HTTP/1.1
OU
GET /analytics/v1/identity/users/{user-id} HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Token de acesso do portador

Resposta de HTTP
{
    "schemas": [
        "urn:scim:schemas:core:2.0:User",
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
    ],
    "id": "user-uuid-1",
    "userName": "test-email@email.com",
    "name": {
        "honorificPrefix": "",
        "familyName": "test",
        "givenName": "testuser",
        "honorificSuffix": ""
    },
    "displayName": "User Name",
    "addresses": [],
    "phoneNumbers": []
    .....
}

 

Esta È uma API de ServiÁo de identidade para obter todos os detalhes dos inquilinos ou com base em tenant_id.

Exemplos de API de Identidade: Para obter os detalhes do locat·rio
SolicitaÁ„o de HTTP
GET /analytics/v1/identity/tenants HTTP/1.1
OU
GET /analytics/v1/identity/tenants/{tenant-id} HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Token de acesso do portador

Resposta de HTTP
{
    "schemas": [
        "urn:scim:schemas:core:2.0:Tenant"
    ],
    "id": "tenant-uuid-1",
    "displayName": "Customer Name",
    "description": "",
    "tenantType": "CUSTOMER",
    "subTypes": [],
    "phoneNumber": {
        "value": "555-5555",
        "type": "work"
    },
    "ownerId": "test-emailid@email.com"
    ....
}

 

 

 

OperaÁıes de filtragem, classificaÁ„o e paginaÁ„o

 

Filtragem

A filtragem È OPCIONAL. Os consumidores podem solicitar um subconjunto de recursos especificando o par‚metro de consulta de URL 'filtro' contendo uma express„o de filtro. Quando especificados, somente os recursos correspondentes ‡ express„o do filtro ser„o devolvidos. A linguagem de express„o utilizada no par‚metro do filtro oferece suporte referÍncias a atributos e valores literais. Os valores literais podem ser strings fechadas em aspas duplas, n˙meros, data-hora dentro de aspas duplas e valores booleanos; isso È, verdadeiro ou falso. Os valores literais de string devem ser strings JSON v·lidas. O nome de atributo e operador de atributos fazem distinÁ„o entre mai˙sculas e min˙sculas.

Por exemplo, as duas expressıes a seguir avaliar„o o mesmo valor lÛgico:
filter=userName Eq "john"
filter=Username eq "john"

O par‚metro do filtro PRECISA conter pelo menos uma express„o booleana v·lida. Cada express„o PRECISA conter um nome de atributo seguido por um operador de atributo e valor opcional. V·rias expressıes podem ser combinadas usando os dois operadores lÛgicos. AlÈm disso, as expressıes podem ser agrupadas usando "()". Os operadores suportados na express„o est„o listados na tabela a seguir.

Operadores de atributos
Operador
DescriÁ„o
Comportamento
eq
equal
O atributo e os valores do operador devem ser idÍnticos para que haja uma correspondÍncia.
co
contÈm
Todo o valor do operador deve ser uma sub-string do valor de atributo para que haja uma correspondÍncia.
sw
starts with
Todo o valor do operador deve ser um sub-string do valor do atributo, a partir do inÌcio do valor do atributo. Este critÈrio È atendido se as duas strings forem idÍnticas.
pr
present (has value)
Se o atributo tiver um valor n„o vazio, ou se ele contiver um nÛ n„o vazio para atributos complexos, h· uma correspondÍncia.
gt
mais de
Se o valor do atributo for maior que o valor do operador, h· uma correspondÍncia. A comparaÁ„o real depende do tipo de atributo. Para tipos de atributos de strings, esta È uma comparaÁ„o lexicogr·fica e, para os tipos DateTime, È uma comparaÁ„o cronolÛgica.
ge
greater than or equal
Se o valor do atributo for maior ou igual ao valor do operador, h· uma correspondÍncia. A comparaÁ„o a ser feita depende do tipo de atributo. Para tipos de atributos de strings, esta È uma comparaÁ„o lexicogr·fica e, para os tipos DateTime, È uma comparaÁ„o cronolÛgica.
lt
menos de
Se o valor do atributo for menor que o valor do operador, h· uma correspondÍncia. A comparaÁ„o a ser feita depende do tipo de atributo. Para tipos de atributos de strings, esta È uma comparaÁ„o lexicogr·fica e, para os tipos DateTime, È uma comparaÁ„o cronolÛgica.
le
less than or equal
Se o valor do atributo for menor ou igual ao valor do operador, h· uma correspondÍncia. A comparaÁ„o a ser feita depende do tipo de atributo. Para tipos de atributos de strings, esta È uma comparaÁ„o lexicogr·fica e, para os tipos DateTime, È uma comparaÁ„o cronolÛgica.
neq
diferente de
O atributo e os valores do operador n„o devem ser idÍnticos para uma correspondÍncia

 

Operadores lÛgicos
Operador
DescriÁ„o
Comportamento
e
Logical And
O filtro sÛ È compatÌvel se ambas as expressıes forem avaliadas como True.
ou
Logical Or
O filtro È uma correspondÍncia se qualquer express„o for avaliada como True.

 

Agrupamento de operadores
Operador
DescriÁ„o
Comportamento
()
Agrupamento de precedÍncia
As expressıes booleanas podem ser agrupadas usando parÍnteses para alterar a ordem padr„o de operaÁıes; ou seja, avalie os operadores lÛgicos OU antes dos operadores lÛgicos AND.

 

Os filtros PRECISAM ser avaliados usando ordem padr„o de operaÁıes. Os operadores de atributos tÍm a maior precedÍncia, seguido pelo operador de agrupamento (ou seja, parÍnteses), seguido pelo operador lÛgico AND, seguido pelo operador lÛgico de OR.

Se o atributo especificado em uma express„o de filtro for um atributo com m˙ltiplos valores, o recurso deve corresponder se alguma das inst‚ncias do atributo informado corresponder ao critÈrio especificado; por exemplo, se um usu·rio tem v·rios valores de e-mails, apenas um tem que corresponder para todo o usu·rio para combinar. Para atributos complexos, um sub-atributo totalmente qualificado PRECISA ser especificado usando a notaÁ„o padr„o de atributo. Por exemplo, para filtrar pelo userName, o valor do par‚metro È o nome de usu·rio; para filtrar pelo primeiro nome, o valor do par‚metro È name.givenName.

Os provedores PODEM oferecer suporte para operaÁıes adicionais de filtro se assim optarem. Os provedores PRECISAM se recusar a filtrar resultados se a operaÁ„o especificada do filtro n„o for reconhecida e retornar um erro HTTP 400 com uma resposta apropriada e legÌvel por humanos. Por exemplo, se um consumidor especificasse um operador n„o suportado chamado 'regex', o provedor de serviÁos deve especificar uma descriÁ„o de resposta de erro identificando o erro do consumidor; por exemplo, 'O operador 'regex' n„o È suportado".

Os atributos do tipo string s„o insensÌveis por padr„o, a menos que o tipo de atributo seja definido como uma string caseExact. Os operadores de atributo 'eq', 'co' e 'sw' PRECISAM realizar uma correspondÍncia casoIgnore para todos os atributos de string, a menos que o atributo seja definido como caseExact. Por padr„o todos os atributos de sequÍncia s„o casoIgnore.

Exemplos:
filter=dateenrolled gt "2011-05-13T04:42:34Z"

filter= ( devicetype eq \"Desktop\" ) and ( devicetype eq \"Notebook\" )

 

ClassificaÁ„o

Classificar È OPCIONAL. A classificaÁ„o permite que os consumidores especifiquem o pedido em que os recursos s„o devolvidos especificando uma combinaÁ„o de par‚metros de URL sortBy e sortOrder.

sortBy
O par‚metro sortBy especifica o atributo cujo valor deve ser usado para ordenar as respostas devolvidas. Se o atributo sortBy corresponder a um atributo singular, os recursos s„o classificados de acordo com o valor desse atributo; Se for um atributo de m˙ltiplos valores, os recursos s„o classificados pelo valor do atributo prim·rio, se aplic·vel, ou ent„o o primeiro valor da lista, se houver. Se o atributo for complexo, o nome de atributo deve ser um caminho para um sub-atributo na notaÁ„o padr„o; por exemplo, sortBy=name.givenName. Para todos os tipos de atributos, se n„o houver dados para o valor especificado de sortBy, eles s„o classificados pelo par‚metro 'sortOrder'; ou seja, eles s„o ordenados por ˙ltimo se ascendente e primeiro se descendente.

sortOrder
A ordem em que o par‚metro sortBy È aplicado. Os valores permitidos s„o "ascendente" e "descendente". Se um valor para sortBy for fornecido e nenhuma ordem de classificaÁ„o for especificada, o sortOrder DEVE usar o padr„o de ascendente. Os atributos do tipo string n„o fazem distinÁ„o de mai˙sculas e min˙sculas por padr„o, a menos que o tipo de atributo seja definido como uma string caseExact. sortOrder PRECISA classificar de acordo com o tipo de atributo; Ou seja, para os atributos casoIgnore, classifique o resultado usando um modelo sem distinÁ„o de mai˙sculas e min˙sculas, ordem de classificaÁ„o alfabÈtica Unicode e, para tipos de atritubo caseExact, classifique o resultado usando a ordem de classificaÁ„o alfabÈtica Unicode.

 

Amostra: classificaÁ„o de coluna ˙nica
POST /analytics/v1/reports/hwinv/details/type/grid?sortBy=dateenrolled&sortOrder=asc HTTP/1.1
Host: daas.api.hp.com
Par‚metros de string de consulta: sortBy=dateenrolled& sortOrder=asc

 

Amostra: classificaÁ„o de v·rias colunas
POST /analytics/v1/reports/hwinv/details/type/grid?sortBy=dateenrolled%20desc,devicename%20asc HTTP/1.1
Host: daas.api.hp.com
Par‚metros de sequÍncia de consulta: sortBy: dateenrolled desc, devicename asc

 

 

PaginaÁ„o

Os par‚metros de paginaÁ„o podem ser usados em conjunto para "p·gina" de um grande n˙mero de recursos para n„o sobrecarregar o provedor serviÁos ou consumidor. A paginaÁ„o n„o È baseada em sess„o, portanto, os consumidores nunca devem assumir resultados repetitivos. Por exemplo, um pedido de uma lista de 10 recursos a partir de um Ìndice inicial de 1 pode retornar resultados diferentes quando repetido uma vez que um recurso no resultado original poderia ser excluÌdo ou novos poderiam ser adicionados entre solicitaÁıes. Os par‚metros de paginaÁ„o e o comportamento geral s„o derivados do protocolo OpenSearch.

A tabela a seguir descreve os par‚metros de paginaÁ„o de URL.

 

Par‚metros de solicitaÁ„o de paginaÁ„o
Par‚metro
DescriÁ„o
Padr„o
startIndex
O Ìndice baseado em 1 do primeiro resultado de busca.
1
contagem
N˙mero inteiro n„o negativo. Especifica o n˙mero m·ximo desejado de resultados de busca por p·gina; por exemplo, 10.
Nenhum. Quando especificado, o provedor de serviÁos n„o deve retornar mais resultados do que o especificado, embora POSSA retorne menos resultados. Se n„o especificado, o n˙mero m·ximo de resultados È definido pelo provedor de serviÁos.

 

P·gina de elementos de resposta
Elemento
DescriÁ„o
itemsPerPage
N˙mero inteiro n„o negativo. Especifica o n˙mero de resultados de pesquisa retornados em uma p·gina de resposta de consulta; por exemplo, 10.
totalResults
N˙mero inteiro n„o negativo. Especifica o n˙mero total de resultados correspondentes ‡ consulta do consumidor; por exemplo, 1000.
startIndex
O Ìndice baseado em 1 do primeiro resultado no conjunto atual de resultados de busca; por exemplo, 1.

Por exemplo, para recuperar os primeiros 10 usu·rios, defina o Ìndice inicial para 1 e a contagem para 10.

Resposta de exemplo

{
  "totalResults":100,
  "itemsPerPage":10,
  "startIndex":1,
  "schemas":["urn:scim:schemas:core:1.0"],
  "Resources":[{
    ...
  }]
}

Dado o exemplo acima, para continuar paginando, defina startIndex para 11 e analise novamente.

 

 

Conversıes de data-hora

 

Para atributos com tipos de dados de data e carimbo de hor·rio na resposta de API, as APIs HP TechPulse Analytics empregam um dos dois cen·rios abaixo:

  • Cen·rio 1. Converter o carimbo de data e hora dos dados do do servidor da Gest„o proativa para a configuraÁ„o de fuso hor·rio preferido do portal de Gest„o Proativa da empresa ou parceiro do usu·rio que est· chamando as APIs, ou
  • Cen·rio 2. Usar o carimbo de data e hora dos dados relatados dos dispositivos em seu fuso hor·rio local.

A referÍncia da API swagger lista o cen·rio utilizado para cada um dos atributos de carimbo de data e hora.

Cen·rio 1

  • Se o usu·rio (que liga para as APIs) pertencer a uma empresa, a resposta da API devolver· os valores de carimbo de data e hora com base nas configuraÁıes de fuso hor·rio preferido situado no portal de Gest„o proativa da empresa.
Exemplo Fuso hor·rio preferido (lastSeenDate)
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/batteryrep/details/type/grid HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Bearer <Access Token>
Body: Sem locat·rios.

Resposta de HTTP
{
    "totalResults": 7,
    "startIndex": 0,
    "itemsPerPage": 1,
    "resources": [
        {
            "counterId": 7,
            "companyId": "1",
            "companyName": "company-name",
            "deviceId": "123456",
            "deviceName": "device-name",
            "serialNumber": "device-sn",
            "deviceManufacturer": "HP",
            "manufactureDate": "16/07/2014",
            "lastSeenDate": "11/12/2018 at 09:45 PM (CDT)",
            "batterySn": "battery-sn",
            "batteryGrade": "Severe degradation",
            "batteryReplacementTimeframe": "0",
            "deviceType": "Notebook",
            "deviceModel": "HP EliteBook Folio 9480m",
            "locationcc": "United States",
            "batteryHealth": "Fail",
            "warStatus": "Out of warranty",
            "ctNumber": "ct-number",
            "dwarstatus": "Unknown",
            "oblenddate": "Unknown"
        }
    ]
}

 

  • se o usu·rio (que chama as APIs) pertencer a um parceiro que gerencia trÍs empresas e cada uma das trÍs empresas tiver diferentes configuraÁıes de fuso hor·rio preferido ñ TZ1, TZ2 e TZ3 ñ e as configuraÁıes de fuso hor·rio preferido do parceiro for TZ4, a resposta devolver· os valores carimbos de data e hora com base nas configuraÁıes de fuso hor·rio preferido situado no portal de Gest„o proativa para o parceiro (ou seja, TZ4)
Exemplo Fuso hor·rio local (data de ocorrÍncia - dateList)
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/hwbluescreen/details/type/grid?count=1&startIndex=0 HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Token de acesso do portador
Body:
{
    "tenants": [ "tenant-uuid-1","tenant-uuid-2" ]
}

Resposta de HTTP
{
    "totalResults": 153919,
    "startIndex": 0,
    "itemsPerPage": 1,
    "resources": [
        {
            "deviceId": "12345",
            "devicename": "device-name",
            "devicesn": "device-sn",
            "drivercrashBugcheckcode": "000000d1",
            "drivercrashDescription": "DRIVER_IRQL_NOT_LESS_OR_EQUAL",
            "drivercrashHyperlink": "https://msdn.microsoft.com/en-us/library/windows/hardware/ff560244(v=vs.85).aspx",
            "counterid": 50,
            "dateList": "08/28/2018 18:37:09",
            "lastonlinedate": "01/23/2019 at 06:58 AM (CST)",
            "causedByDriver": "Unable to determine",
            "driverVersion": "Unable to determine",
            "locationcc": "United States",
            "osRelease": "Win10 - 1703"
        }
    ]
}

 

 

 

Formatos numÈricos

 

As APIs HP TechPulse Analytics empmregam a configuraÁ„o de linguagem de usu·rio do portal Gest„o proativa do usu·rio que chama as APIs para atributos com formatos numÈricos. Por exemplo, se a configuraÁ„o de linguagem do usu·rio for definida para o inglÍs (Estados Unidos), ent„o os valores todos os atributos numÈricos retornados pelas APIs seguir„o as convenÁıes dos Estados Unidos.

A configuraÁ„o do idioma do usu·rio pode ser definida manualmente no portal de Gest„o Proativa ou acionando a .

Para definir as configuraÁıes do idioma manualmente, o usu·rio de Gest„o proativa com cargo de administrador de TI, administrador de relatÛrios, administrador de parceiros ou especialista parceiro faz login no portal de Gest„o proativa e realiza as seguintes etapas. 1. Fazer login no portal de Gest„o proativa. 2. Na p·gina principal, clique no Ìcone Usu·rio e, em seguida, EDITAR MEU PERFIL para abrir a p·gina Detalhes do usu·rio. 3. Na p·gina Detalhes do usu·rio, clique no bot„o Editar na primeira seÁ„o. 4. Altere o idioma no menu suspenso Idioma. 5. Clique em Salvar

Para obter as configuraÁıes atuais de idioma do usu·rio, use o

Exemplo
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/softuti/winApplications/type/graph HTTP/1.1
Host: daas.api.hp.com
AutorizaÁ„o: Bearer <ACCESS_TOKEN>

Resposta de HTTP:
{
    "totalResults": 1,
    "startIndex": 0,
    "itemsPerPage": 1,
    "resources": [
        {
            "byPercentages": [
                {
                    "appName": "Windows Explorer",
                    "usage": 52,44
                },
                {
                    "appName": "Internet Explorer",
                    "usage": 51,87
                }
            ],
            "byUsageHours": [
                {
                    "appName": "Windows Explorer",
                    "usage": 81,6
                },
                {
                    "appName": "Internet Explorer",
                    "usage": 50,27
                }
            ]
        }
    ]
}

 

 

 

Atributos Exclude/Include

 

Especificar atributos para retornar Por padr„o, a HP TechPulse Analytics retorna todos os atributos que seu aplicativo cliente est· autorizado a ler quando vocÍ solicita um recurso. VocÍ pode especificar qualquer um dos seguintes par‚metros especiais de consulta para substituir esse comportamento:

Par‚metro
DescriÁ„o
atributos
Indica o conjunto de atributos para incluir na resposta. Usa uma lista separada por vÌrgulas de nomes de atributos. Os nomes de atributos do esquema de extens„o devem ser prefixados com o esquema de extens„o URN.
excludedAttributes
Indica um conjunto de atributos para excluir da resposta. Usa uma lista separada por vÌrgulas de nomes de atributos. Os nomes de atributos do esquema de extens„o devem ser prefixados com o esquema de extens„o URN.

Os par‚metros atributes e excludedAttributes s„o mutuamente exclusivos. N„o especifique ambos na mesma solicitaÁ„o. Consulte a API de ReferÍncia para obter uma lista completa de atributos para cada recurso.

NOTA: Para legibilidade, a lista de strings e atributos do filtro mostrados aqui ainda n„o foram codificadas por URL.

Exemplo de uma solicitaÁ„o POST que retorna todos os atributos, exceto atributos excluÌdos especÌficos
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/softuti/summary/type/grid?count=2&startIndex=1&excludedAttributes=resources.appName,resources.appVersion HTTP/1.1
Host: daas.api.hp.com
AutorizaÁ„o: Bearer <ACCESS_TOKEN>

Resposta de HTTP
{
    "totalResults": 31,
    "startIndex": 1,
    "itemsPerPage": 2,
    "resources": [
        {
            "deviceCount": "105873",
            "appUsageCount": "55160",
            "appUsagePercent": "52,10",
            "appUsageHours": "7900112,50",
            "appAvgUsageTime": "74,62",
            "rankAppUsagePercent": "3",
            "rankAppUsageHrs": "4"
        },
        {
            "deviceCount": "105873",
            "appUsageCount": "54915",
            "appUsagePercent": "51,87",
            "appUsageHours": "9808576,00",
            "appAvgUsageTime": "92,64",
            "rankAppUsagePercent": "4",
            "rankAppUsageHrs": "5"
        }
    ]
}

 

Exemplo de uma solicitaÁ„o POST que retorna atributos excluÌdos especÌficos
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/softuti/summary/type/grid?count=2&startIndex=1&attributes=resources.appName,resources.appVersion HTTP/1.1
Host: daas.api.hp.com
AutorizaÁ„o: Bearer <ACCESS_TOKEN>

Resposta de HTTP
{
    "resources": [
        {
            "appName": "Windows Shell Experience Host",
            "appVersion": "10.0.15063.909"
        },
        {
            "appName": "Internet Explorer",
            "appVersion": "11.00.15063.0"
        }
    ]
}

 

 

 

Limite de resposta padr„o

 

Para evitar que as APIs sejam sobrecarregadas por solicitaÁıes que exijam uma grande quantidade de dados, a Gest„o proativa estabelece um limite de resposta padr„o em detalhes pedidos de API. Quando os envios de solicitaÁ„o excedem o Limite de resposta padr„o, a Gest„o proativa o substitui explicitamente pelo limite padr„o e responde adequadamente. Como desenvolvedor de APIs, vocÍ pode definir os limites para detalhes individuais API para melhorar o desempenho geral em todas as APIs e empregar a opÁ„o de paginaÁ„o. O limite de resposta padr„o (~1K) È baseado na configuraÁ„o atual do servidor e no desempenho geral do sistema.

 

 

APIs Resumidas x Detalhadas

 

A HP TechPulse Analytics fornece dois tipos de APIs:

  • Summary APIs. As APIs resumidas fornecem informaÁıes agregadas para certos atributos. A convenÁ„o de nomeaÁ„o geralmente seguida tem um formato de < /analytics/v1/reports/report-name/report-option/type/graph>. A forma mais comum de agregaÁ„o fornecida inclui SUM, COUNT e DISTINCT COUNT em certos atributos, agrupados por outros atributos.

Por exemplo, o /analytics/v1/reports/hwinv/deviceType/type/graph fornece informaÁıes sum·rias sobre a contagem de n˙mero de dispositivos pelos v·rios tipos de dispositivos (ou seja, notebook, desktop, tablet, smartphone etc.).

Exemplo de API detalhada
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/hwinv/details/type/grid?filter=devicetype eq "Desktop" HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Token de acesso do portador

Resposta de HTTP
{
    "totalResults": 11,
    "startIndex": 0,
    "itemsPerPage": 11,
    "resources": [
        {
            "counterId": 134375,
            "deviceName": "device-name",
            "deviceType": "Desktop",
            "deviceMfg": "HP",
            "deviceModel": "HP ProDesk 600 G4 SFF",
            "deviceSn": "device-sn",
            "deviceOs": "Windows 10",
            "dateEnrolled": "29/09/2018",
            "endDate": "01/03/2021",
            "lastOnlineDate": "11/28/2018 at 03:49 AM (UTC)",
            "memory": "24 GB  2667 MHz",
            "graphics": "Intel(R) UHD Graphics 630",
            "processor": "Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz",
            "mfgDate": "31/01/2018",
            "dataAsOfDate": "29/11/2018",
            "deviceOsOriginal": "Windows 10",
            "warStatus": "In warranty",
            "locationcc": "United States",
            "dateListMonth": "Sep 2018",
            "deviceId": "123456",
            "companyName": "company-name",
            "osrelease": "Unknown",
            "osversion": "Unknown",
            "osreleselToggaleEnabled": true
        },
        ... // 11 registros
    ]
}

 

  • API detalhada. A API detalhada fornece informaÁıes amplas sobre todos os atributos. A convenÁ„o de nomeaÁ„o normalmente seguida tem um formato de </analytics/v1/reports/report-name/report-option /type/grid>.

Por exemplo, /analytics/v1/reports/hwinv/details/type/grid fornece informaÁıes sobre todos os atributos do invent·rio de hardware expostos na Gest„o proativa.

 

Exemplo de API resumida
SolicitaÁ„o de HTTP
POST /analytics/v1/reports/hwinv/deviceByOS/type/graph?filter=devicetype eq "Desktop" HTTP/1.1
Host: daas.api.hp.com
Content-Type: application/json
AutorizaÁ„o: Token de acesso do portador

Resposta de HTTP
{
    "totalResults": 3,
    "startIndex": 0,
    "itemsPerPage": 3,
    "resources": [
        {
            "deviceOs": "Windows 10",
            "total": 8,
            "data": null,
            "osRelease": null,
            "dataForOSRelease": false,
            "osReleaseData": [
                {
                    "deviceOs": "Windows 10",
                    "total": 3,
                    "data": null,
                    "osRelease": "10.0.17134.407",
                    "dataForOSRelease": true,
                    "osReleaseData": null,
                    "deviceos_original_latest": null,
                    "deviceOsMajorVersion": null,
                    "productOs": null,
                    "osreleselToggaleEnabled": false
                },
                ...// 4 registros
            ],
            "deviceos_original_latest": null,
            "deviceOsMajorVersion": "Windows",
            "productOs": null,
            "osreleselToggaleEnabled": true
        },
        ...// 2 registros
    ]
}

 

 

 

Mensagens de erro

Erros de autorizaÁ„o

Quando o HP DaaS encontrar um erro em uma solicitaÁ„o de autorizaÁ„o, seja com a prÛpria solicitaÁ„o /oauth/v1/authorise ou o processamento da solicitaÁ„o, ele responder· de duas formas:

Se o URI de redirecionamento for inv·lido ou inutiliz·vel, ou se o ID do cliente n„o for encontrado ou for inv·lido, o HP DaaS n„o poder· enviar um erro de volta ao seu aplicativo. Neste caso, ele exibir· uma mensagem de erro diretamente para o usu·rio final.

Caso contr·rio, o HP DaaS redirecionar· para o URI de redirecionamento, anexando o erro e par‚metros de consulta error_description. Por exemplo, o HP DaaS chamar· o seguinte URL se um escopo inv·lido for solicitado na URL de autorizaÁ„o:

Escopo inv·lido

http://redirect-uri/?error=invalid_scope&error_description=The%20requested%20scope%20is%20invalid,%20unknown,%20or%20malformed&state=daas_session
 
URI de redirecionamento inv·lido

http://redirect-uri/?error=invalid_request&error_description=Invalid%20redirect_uri%20parameter&state=daas_session

 

Erros de token

Erros retornados pelo endpoint oauth/v1/token normalmente usam um status HTTP de 400; o corpo È um documento JSON composto pela descriÁ„o do erro.

Por exemplo:

Resposta inv·lida
{ 
  "Error": "Incorrect or missing authorization code" 
}

 

Valores possÌveis para cÛdigo de erro e descriÁ„o s„o informados abaixo:

CÛdigo de erro
DescriÁ„o do erro
400
CÛdigo de autorizaÁ„o incorreto ou n„o encontrado.
401
N„o autorizado
402
clientId inv·lido
500
Erro interno do servidor.