Metodo api_get()

Invia una richiesta GET all'API di HighBond.

Sintassi

hcl.api_get("Dettagli della richiesta API di HighBond")

Parametri

Nome Descrizione
Dettagli della richiesta API di HighBond

Dettagli della richiesta per la risorsa Diligent One.

hcl.api_get fornisce automaticamente in background la parte standard dei dettagli della richiesta. Non è necessario specificare esplicitamente questi elementi di richiesta a meno che non si desideri sovrascrivere un valore predefinito:

  • informazioni sull'host

  • Area di Diligent One

  • ID istanza Diligent One (ID dell'organizzazione)

  • informazioni sull'intestazione

Per la sintassi della richiesta per una risorsa Diligent One specifica, consultare il Riferimento alle API di HighBond.

Nota

Se si specificano esplicitamente le informazioni sull'host, è necessario utilizzare il protocollo HTTPS per connettersi all'API di HighBond. Ad esempio: https://apis-us.highbond.com

Restituisce

Oggetto di risposta dal server API di HighBond.

Esempi

Esempi di base

Nota

Il metodo hcl.api_get() restituisce un oggetto risposta che contiene tutto ciò che è stato restituito dal server API di HighBond. L'oggetto risposta contiene sia metadati che dati. In genere, è necessario applicare l'elaborazione successiva all'oggetto risposta per estrarre i dati che è possibile utilizzare in uno script Python/HCL. Per maggiori informazioni, consultare Esempi avanzati.

Ottenere un elenco di tutti i progetti in un'istanza Diligent One

Restituisce un elenco di tutti i progetti nell'istanza Diligent One in cui si sta lavorando:

hcl.api_get("projects")

Ottenere un elenco di tutte le raccolte nell'applicazione Risultati di Diligent One

Restituisce un elenco di tutte le raccolte di Risultati nell'istanza Diligent One in cui si sta lavorando:

hcl.api_get("collections")

Ottenere un elenco di tutte le issue in un progetto

Restituisce un elenco di tutte le issue nel progetto con ID 19756:

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

Ottenere un elenco di issue e limitare i campi nella risposta

Restituisce un elenco di tutte le issue nel progetto con ID 19756 e restituisce solo i campi specificati per ciascuna issue:

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

Esempi avanzati

Accedere all'elenco delle issue nell'oggetto risposta restituito dal server API di HighBond

In genere è necessario manipolare l'oggetto risposta restituito dal server API di HighBond in modo da poter lavorare con i dati in esso contenuti.

Restituisce un oggetto risposta che include un elenco di tutte le issue nel progetto con ID 19756:

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

Utilizzare il metodo .json() della libreria Python Requests per estrarre la parte con codifica JSON dell'oggetto risposta in un dizionario Python. Ora è possibile lavorare con i dati delle issue in uno script Python/HCL.

import requests
hb_issues_dict = response_object.json()

È inoltre possibile eseguire entrambe le operazioni menzionate sopra in un unico passaggio:

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

È possibile stampare il dizionario Python per visualizzarne il contenuto. Senza alcuna formattazione aggiuntiva, il dizionario viene visualizzato senza interruzioni di riga o rientro per evidenziare gli elementi nidificati:

print(hb_issues_dict)

Viene utilizzato il metodo .dumps() della libreria JSON Python per applicare formattazione aggiuntiva in modo che il contenuto del dizionario sia più leggibile:

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

Esempio di output formattato:

{
    "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
    }
}

Osservazioni

Autenticazione

Tutte le richieste API di HighBond richiedono l'autenticazione. Per accedere all'API,occorre essere un amministratore di sistema in almeno un'istanza Diligent One.

Per eseguire l'autenticazione, usare Launchpad per creare un token API di HighBond per l'account. Il token è una stringa che autentica l'utente e consente di accedere in modo sicuro all'API di HighBond. Per ricevere assistenza nella creazione di un token, consultare Creare e gestire i token di accesso Diligent One.

Utilizzare un token API di HighBond con metodi di API di HighBond

Per utilizzare un token API di HighBond con i metodi di API di HighBond, è necessario assegnare il token a una variabile HCL denominata v_hb_token. Una volta assegnato, il token viene automaticamente utilizzato per l'autenticazione in background, senza che sia necessario specificarlo esplicitamente nello script Diligent One. Per ottenere informazioni sull'assegnazione del token alla variabile, consultare Utilizzare la finestra Variabili per definire una variabile HCL.

Token utente di sistema

I clienti che hanno acquistato kit di strumenti specifici Diligent One hanno anche la possibilità di autenticarsi utilizzando un token utente di sistema generico anziché un token associato a un account utente specifico.

Specificare solo la parte univoca dell'URL della risorsa

Quando si utilizza un metodo API di HighBond, è necessario specificare solo la parte univoca, o endpoint, dell'URL della risorsa Diligent One. Non è necessario specificare la parte comune (URL di base) o l'ID dell'istanza di Diligent One su cui si sta lavorando. Queste informazioni vengono fornite automaticamente in background.

Ad esempio, se si lavora su un'istanza Diligent One con ID 1000236, entrambe queste richieste API restituiscono una risposta identica. Entrambi elencano tutte le issue del progetto 19756.

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

Consultare il Riferimento alle API di HighBond

La sintassi della richiesta per ogni risorsa Diligent One è disponibile nel Riferimento alle API di HighBond. Ecco, ad esempio, la sintassi della richiesta per ottenere l'elenco delle issue in un progetto.

Se si utilizza un metodo HCL per effettuare la richiesta, è possibile iniziare a specificare la sintassi in projects/....

Se si effettua la richiesta dall'esterno di Diligent One, è necessario specificare l'intero URL della risorsa, a partire dal protocollo ( https://... ).

Utilizzare una variabile nell'URL della risorsa

Invece di specificare un ID letterale in un URL di risorsa, si potrebbe avere un codice che richiede l'utilizzo di una variabile nell'URL. L'URL della risorsa è formattato come una stringa, quindi per incorporare una variabile nella stringa è necessario utilizzare una delle tecniche Python illustrate di seguito.

È possibile utilizzare una f-string Python:

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

È possibile utilizzare la concatenazione di stringhe Python:

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