Método api_get()

Envía una solicitud GET a la API de HighBond.

Sintaxis

hcl.api_get("detalles de la solicitud de la API de HighBond")

Parámetros

Nombre Descripción
Detalles de la solicitud de la API de HighBond

Los detalles de la solicitud para el recurso de Diligent One.

hcl.api_get proporciona automáticamente la parte estándar de los detalles de la solicitud en segundo plano. No es necesario especificar de manera explícita estos elementos de la solicitud a menos que desee reemplazar un valor predeterminado:

  • información del host

  • Región de Diligent One

  • ID de la instancia de Diligent One (ID de la organización)

  • información del encabezado

Si desea conocer la sintaxis de la solicitud para un recurso específico de Diligent One, consulte la Referencia de la API de HighBond.

Nota

Si especifica explícitamente información del host, debe utilizar el protocolo HTTPS para conectarse con la API de HighBond. Por ejemplo: https://apis-us.highbond.com

Devuelve

Objeto de respuesta del servidor de la API de HighBond.

Ejemplos

Ejemplos básicos

Nota

El método hcl.api_get() devuelve un objeto de respuesta que contiene todo lo que devuelve el servidor de la API de HighBond. El objeto de respuesta contiene metadatos y datos. Normalmente, necesita aplicar un procesamiento posterior al objeto de respuesta para extraer datos que pueda usar en un script Python/HCL. Si desea obtener más información, consulte Ejemplos avanzados.

Obtener una lista de todos los proyectos de una instancia de Diligent One

Devuelve una lista de todos los proyectos de la instancia de Diligent One en los que está trabajando:

hcl.api_get("projects")

Obtener una lista de todas las colecciones en la aplicación Resultados de Diligent One

Devuelve una lista de todas las colecciones de Resultados de la instancia de Diligent One en las que está trabajando:

hcl.api_get("collections")

Obtener una lista de todos los asuntos de un proyecto

Devuelve una lista de todos los asuntos del proyecto con el identificador 19756:

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

Obtener una lista de asuntos y limitar los campos de la respuesta

Devuelve una lista de todos los asuntos del proyecto con el identificador 19756 y devuelve únicamente los campos especificados para cada asunto:

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

Ejemplos avanzados

Acceder a la lista de asuntos en el objeto de respuesta devuelto por el servidor de la API de HighBond

Normalmente, debe manipular el objeto de respuesta devuelto por el servidor de la API de HighBond para poder trabajar con los datos que contiene.

Devuelve un objeto de respuesta que incluye una lista de todos los asuntos del proyecto con el identificador 19756:

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

Usa el método .json() de la biblioteca de solicitudes de Python para extraer la parte con codificación JSON del objeto de respuesta en un diccionario de Python. Ahora puede trabajar con los datos de los asuntos en un script Python/HCL.

import requests
hb_issues_dict = response_object.json()

También puede realizar las dos operaciones anteriores en un solo paso:

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

Puede imprimir el diccionario de Python en la pantalla para ver el contenido. Si no se aplica ningún formato adicional, el diccionario se muestra sin saltos de línea y sin sangría para compensar los elementos anidados:

print(hb_issues_dict)

Usa el método .dumps() de la biblioteca JSON de Python para aplicar formato adicional a fin de que el contenido del diccionario se lea mejor:

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

Ejemplo de salida con formato:

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

Observaciones

Autenticación

Todas las solicitudes de la API de HighBond necesitan una autenticación. Para acceder a la API, debe ser administrador del sistema en al menos una instancia de Diligent One.

Para la autenticación, use Launchpad para crear un token de API de HighBond para su cuenta. El token es una cadena que le brinda autenticación y le permite acceder a la API de HighBond de manera segura. Si necesita ayuda para crear un token, consulte Crear y administrar tokens de acceso de HighBond.

Uso de un token de API de HighBond con los métodos de la API de HighBond

Para utilizar un token de la API de HighBond con los métodos de la API de HighBond, debe asignar un token a una variable de HCL llamada v_hb_token. Una vez asignado, el token se utiliza de manera automática para la autenticación en segundo plano sin necesidad de especificarlo explícitamente en el script de Diligent One. Si desea obtener información sobre la asignación del token a la variable, consulte Utilice la ventana Variables para definir una variable de HCL.

Token de usuario del sistema

Los clientes que adquirieron juegos de herramientas de Diligent One específicos también pueden realizar la autenticación con un token de usuario del sistema genérico en lugar de utilizar un token asociado con una cuenta de usuario específica.

Especifique solo la porción exclusiva del URL del recurso

Cuando utilice el método de la API de HighBond, debe especificar únicamente la parte exclusiva, o punto de conexión, del URL del recurso de Diligent One. No es necesario que especifique la parte común (URL base) ni el identificador de la instancia de Diligent One en la que está trabajando. Esta información se proporciona automáticamente en segundo plano.

Por ejemplo, si está trabajando en una instancia de Diligent One con el identificador 1000236, las siguientes solicitudes de la API devuelven la misma respuesta. Ambas incluyen todos los asuntos del proyecto 19756.

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

Consulte la Referencia de API de HighBond.

Puede encontrar la sintaxis de la solicitud para cada recurso de Diligent One en la Referencia de API de HighBond. Aquí, por ejemplo, se incluye la sintaxis de la solicitud para obtener una lista de asuntos de un proyecto.

Si está utilizando un método de HCL para hacer la solicitud, puede comenzar especificando la sintaxis en projects/....

Si está haciendo la solicitud desde fuera de Diligent One, debe especificar todo el URL del recurso, comenzando con el protocolo (https://...).

Uso de una variable en el URL del recurso

En lugar de especificar un identificador literal en el URL del recurso puede usar un código que requiera el uso de una variable en el URL. El URL del recurso tiene el formato de una cadena por eso, para incorporar una variable en la cadena, debe usar alguna de las técnicas de Python que se incluyen a continuación.

Puede usar una cadena f-string de Python:

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

Puede utilizar una concatenación de cadenas de Python:

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