Método api_get()

Envia uma solicitação GET à API do HighBond.

Sintaxe

hcl.api_get("Detalhes da solicitação de API do HighBond")

Parâmetros

Nome Descrição
Detalhes da solicitação de API do HighBond

Os detalhes da solicitação para o recurso do Diligent One.

hcl.api_get fornece automaticamente a parte padrão dos detalhes da solicitação em segundo plano. Você não precisa especificar explicitamente esses elementos da solicitação, a menos que queira substituir um valor padrão:

  • informações do host

  • Região do Diligent One

  • ID da instância do Diligent One (ID da organização)

  • informações do cabeçalho

Para ver a sintaxe de solicitação de um recurso específico do Diligent One, consulte a referência da API do HighBond.

Observação

Se você especificar explicitamente as informações do host, deverá usar o protocolo HTTPS para se conectar com a API do HighBond. Por exemplo: https://apis-us.highbond.com

Retorna

Objeto de resposta do servidor da API do HighBond.

Exemplos

Exemplos básicos

Observação

O método hcl.api_get() retorna um objeto de resposta que contém tudo que é retornado pelo servidor da API do HighBond. O objeto de resposta contém metadados e dados. Normalmente, é necessário aplicar processamento subsequente ao objeto de resposta para extrair dados que podem ser usados em um script Python/HCL. Para obter mais informações, consulte Exemplos avançados.

Obter uma lista de todos os projetos ativos na instância do Diligent One

Retorna uma lista de todos os projetos na instância do Diligent One em que você está trabalhando:

hcl.api_get("projects")

Obter uma lista de todas as coleções no aplicativo Resultados do Diligent One

Retorna uma lista de todas as coleções do Resultados na instância do Diligent One em que você está trabalhando:

hcl.api_get("collections")

Obter uma lista de todos os problemas em um projeto

Retorna uma lista de todos os problemas no projeto com ID 19756:

hcl.api_get("projects/19756/issues")

Obter uma lista de problemas e limitar os campos na resposta

Retorna uma lista de todos os problemas no projeto com ID 19756 e retorna apenas os campos especificados de cada problema:

hcl.api_get("projects/19756/issues?fields[issues]=title,description,creator_name,created_at,updated_at,owner")

Exemplos avançados

Acessar a lista de problemas no objeto de resposta retornado pelo servidor da API do HighBond

Normalmente, você precisa manusear o objeto de resposta retornado pelo servidor da API do HighBond para poder trabalhar com os dados que ele contém.

Retorna um objeto de resposta que inclui uma lista de todos os problemas no projeto com o ID 19756:

response_object = hcl.api_get("projects/19756/issues")

Usa o método .json() da biblioteca Requests do Python para extrair a parte codificada com JSON do objeto de resposta para um dicionário Python. Agora, você pode trabalhar com os dados dos problemas em um script Python/HCL.

import requests
hb_issues_dict = response_object.json()

Também é possível realizar as duas operações acima em uma única etapa:

import requests
hb_issues_dict = hcl.api_get("projects/19756/issues").json()

Você pode imprimir o dicionário do Python na tela para ver o conteúdo. Sem formatação adicional, o dicionário é exibido sem quebras de linha nem indentação para iniciar elementos aninhados:

print(hb_issues_dict)

Usa o método .dumps() da biblioteca JSON do Python para aplicar formatação adicional, de modo que o conteúdo do dicionário se torne mais legível:

import json
hb_issues_dict_formatted = json.dumps(hb_issues_dict, indent=4)
print(hb_issues_dict_formatted)

Exemplo de saída formatada:

{
    "data": [
        {
            "id": "52983",
            "type": "issues",
            "attributes": {
                "title": "Data retention and backup",
                "description": null,
                "creator_name": null,
                "created_at": "2015-05-08T20:59:34Z",
                "updated_at": "2016-11-17T18:44:59Z",
                "position": 3,
                "owner": "Jane Sleaman",
                "recommendation": "",
                "deficiency_type": "Deficiency",
                "severity": "High",
                "published": true,
                "identified_at": "2015-05-08T20:59:34Z",
                "reference": null,
                "reference_prefix": "1-A",
                "risk": "<p>Data retention and backup policy does not exist</p>\r\n",
                "scope": null,
                "escalation": null,
                "cause": "",
                "effect": "",
                "cost_impact": 3000.0,
                "executive_summary": null,
                "executive_owner": null,
                "project_owner": null,
                "closed": false,
                "remediation_status": null,
                "remediation_plan": null,
                "remediation_date": null,
                "actual_remediation_date": null,
                "retest_deadline_date": null,
                "actual_retest_date": null,
                "retesting_results_overview": null,
                "custom_attributes": []
            },
            "relationships": {
                "project": {
                    "data": {
                        "id": "19756",
                        "type": "projects"
                    }
                },
                "owner_user": {
                    "data": {
                        "id": "HWF9X5jpXsS",
                        "type": "users"
                    }
                },
                "executive_owner_user": {
                    "data": null
                },
                "project_owner_user": {
                    "data": null
                },
                "creator_user": {
                    "data": null
                }
            }
        }
    ],
    "links": {
        "prev": null,
        "next": null
    }
}

Observações

Autenticação

Todas as solicitações de API do HighBond exigem autenticação. Para acessar a API, você precisa ser um Administrador do Sistema em pelo menos uma instância do Diligent One.

Para autenticar, use o Launchpad para criar um token de API do HighBond para sua conta. O token é uma cadeia que autentica você, permitindo que você acesse a API do HighBond com segurança. Para obter ajuda na criação do token, consulte Criando e gerenciando tokens de acesso da Diligent One.

Usar um token de API do HighBond com métodos da API do HighBond

Para usar um token de API do HighBond com métodos da API do HighBond, você precisa atribuir o token a uma variável do HCL chamada v_hb_token. Depois que é atribuído, o token é usado automaticamente para autenticação em segundo plano, sem precisar ser especificado explicitamente no script do Diligent One. Para obter informações sobre a atribuição do token à variável, consulte Use a janela Variáveis para definir uma variável HCL.

Token de usuário de sistema

Os clientes que compraram kits de ferramentas específicos do Diligent One também podem autenticar usando um token genérico de usuário de sistema, em vez de um token associado a uma conta de usuário específica.

Especificação apenas da parte única da URL do recurso

Quando você usa um método da API do HighBond, precisa especificar apenas a parte única, ou ponto de extremidade, da URL do recurso do Diligent One. Não é preciso especificar a parte comum (URL base) ou o ID da instância do Diligent One em que você está trabalhando. Essas informações são fornecidas automaticamente em segundo plano.

Por exemplo, se você está trabalhando em uma instância do Diligent One com ID 1000236, ambas as solicitações de API retornam a mesma resposta. As duas solicitações listam todos os problemas do projeto 19756.

hcl.api_get("projects/19756/issues")
hcl.api_get("https://apis.highbond.com/v1/orgs/1000236/projects/19756/issues")

Consulte a referência da API do HighBond

A sintaxe de solicitação de cada recurso do Diligent One está disponível na referência da API do HighBond. Por exemplo, esta é a sintaxe de solicitação para obter a lista de problemas de um projeto.

Se você está usando um método do HCL para fazer a solicitação, pode começar a especificar a sintaxe em projects/....

Se você está fazendo a solicitação de fora do Diligent One, precisa especificar a URL completa do recurso, começando pelo protocolo (https://...).

Usar uma variável na URL do recurso

Em vez de especificar um ID literal em um URL do recurso, você pode ter código que exige o uso de uma variável no URL. O URL do recurso é formatado como cadeia. Portanto, para incorporar uma variável na cadeia, você precisa usar uma das técnicas do Python mostradas a seguir.

Você pode usar uma f-string Python:

v_project_id = "19756"
hcl.api_get(f"projects/{v_project_id}/issues")

Você pode usar a concatenação de cadeias do Python:

v_project_id = "19756"
hcl.api_get("projects/" + v_project_id + "/issues")