Gestionar recursos de API con Apigee Spaces

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

En este tema se describe cómo crear y gestionar recursos de API en un espacio. Puedes crear proxies de API, flujos compartidos y productos de API en un espacio. Los recursos creados en el espacio heredarán los mismos permisos que el espacio.

Crear recursos en un espacio es lo mismo que crear recursos en una organización de Apigee, excepto que puedes seleccionar un espacio al crear el recurso. Puedes crear recursos de API desde la línea de comandos mediante las APIs de Apigee o con la consola de Apigee en Cloud.

En esta guía se describen los pasos necesarios para hacer lo siguiente:

Para obtener una descripción general de Apigee Spaces, consulta Apigee Spaces.

Para obtener más información sobre los tipos de recursos de la API de Apigee, consulta los siguientes artículos:

Antes de empezar

Antes de empezar a crear recursos de API en Apigee Spaces, asegúrate de completar las siguientes tareas:

Roles y permisos necesarios

Con la introducción de Apigee Spaces, ha cambiado la forma en que IAM comprueba los permisos necesarios para realizar algunas operaciones en recursos de API. Si el recurso de la API se encuentra en un espacio, Gestión de identidades y accesos comprobará si el miembro del espacio que realiza la operación tiene los permisos adecuados a nivel del espacio. Para obtener más información, consulta Roles y permisos de Apigee Spaces y Jerarquía de permisos de gestión de identidades y accesos de Apigee Spaces.

Asignar roles y permisos a los miembros de un espacio

Hay tres roles personalizados disponibles para los miembros de los espacios:

  • apigee.spaceContentEditor: proporciona acceso completo a los recursos que se pueden asociar a un espacio. Este rol se debe conceder a nivel de espacio.
  • apigee.spaceContentViewer: proporciona acceso de solo lectura a los recursos que se pueden asociar a un espacio. Este rol se debe conceder a nivel de espacio.
  • apigee.spaceConsoleUser: proporciona los permisos mínimos necesarios para gestionar recursos en un espacio mediante la consola Google Cloud . Este rol se debe conceder a nivel de proyecto Google Cloud a los usuarios que tengan acceso a los recursos de ese espacio.

Los roles personalizados que se describen en esta sección no permiten a los miembros del espacio desplegar o retirar proxies de API o flujos compartidos. Si quieres permitir que un miembro de un espacio gestione las implementaciones, define una política de gestión de identidades y accesos a nivel de entorno de Apigee o de proyecto que conceda el rol apigee.environment.admin al miembro del espacio. Google Cloud

Puedes asignar uno o varios roles a un miembro de un espacio mediante uno de los siguientes métodos:

  • Añade el rol apigee.spaceContentEditor al espacio mediante la API y añade el rol apigee.environmentAdmin al entorno de destino mediante la API.
  • Añade los roles al proyecto mediante la interfaz de usuario de gestión de identidades y accesos.

Para comprobar los roles a nivel de proyecto, sigue estos pasos: Google Cloud

  1. En la consola, ve a la página Gestión de identidades y accesos. Google Cloud

    Ir a IAM
  2. Selecciona el proyecto.
  3. En la columna Principal, busca todas las filas que te identifiquen a ti o a un grupo del que formes parte. Para saber en qué grupos estás incluido, ponte en contacto con tu administrador.

  4. En todas las filas en las que se te especifique o se te incluya, consulta la columna Rol para ver si la lista de roles incluye los roles necesarios.

Para conceder los roles

  1. En la consola, ve a la página Gestión de identidades y accesos. Google Cloud

    Ir a IAM
  2. Selecciona el proyecto.
  3. Haz clic en Conceder acceso.
  4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

  5. En la lista Selecciona un rol, elige un rol.
  6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
  7. Haz clic en Guardar.

Para comprobar las políticas de gestión de identidades y accesos aplicadas a nivel de espacio, consulta Gestionar miembros y roles en un espacio.

Gestionar proxies de API en un espacio

Los miembros de la organización de Apigee asignados a un espacio pueden crear proxies de API como recursos del espacio. Los miembros asignados solo a otros espacios no podrán acceder a estos proxies ni gestionarlos.

Crea un proxy de API como recurso de espacio mediante la consola de Apigee en Cloud o la API, tal como se describe en las siguientes secciones.

Apigee en la consola de Cloud

Para crear un proxy de API como recurso de espacio mediante la consola de Apigee en Cloud, sigue estos pasos:

  1. Sigue los pasos que se indican en Crear un proxy de API.
  2. En el paso 5, verá un campo adicional en Detalles del proxy, donde podrá seleccionar un espacio para el proxy de API. Selecciona un espacio en el cuadro de lista. Si no quieres asignar el proxy de API a un espacio, puedes omitir este campo.
  3. Haga clic en Siguiente para ir al paso opcional de implementación de la creación del proxy o haga clic en Crear para crear el proxy sin implementarlo.

API de Apigee

Para crear un proxy de API como recurso de espacio mediante las APIs de Apigee, usa el siguiente comando:

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/apis?name=PROXY_NAME&space=SPACE_NAME&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data" \
    -F "file=@PROXY_BUNDLE"

Donde:

  • ORG_NAME es el nombre de tu organización de Apigee.
  • PROXY_NAME es el nombre del proxy de API que vas a crear. El nombre debe ser único en todo el mundo, no solo en el espacio.
  • SPACE_NAME es el nombre del espacio en el que vas a crear el proxy de API.
  • PROXY_BUNDLE es el nombre del archivo del paquete de proxy de API.

Por ejemplo, con el siguiente comando, un miembro del equipo red crea un proxy de API llamado proxy-1 como recurso de espacio red en la organización acme con el archivo proxy-bundle.zip:

curl "https://apigee.googleapis.com/v1/organizations/acme/apis?name=proxy-1&space=red&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data \
    -F "file=@proxy-bundle.zip"

En el siguiente ejemplo se muestra la respuesta al comando:

{
  "basepaths": ["/proxy-1"],
  "revision": 1,
  "apiProxyId": "proxy-1",
  "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
  "space": "red",
  "createTime": ...,
  "updateTime": ...
}

Gestionar flujos compartidos como recursos de espacios

Los miembros asignados a un espacio también pueden crear flujos compartidos como recursos del espacio. Los miembros de otros espacios no podrán acceder a estos flujos compartidos ni gestionarlos.

Crea un flujo compartido como recurso de espacio mediante la consola de Apigee en Cloud o la API, tal como se describe en las siguientes secciones.

Apigee en la consola de Cloud

Para crear un flujo compartido como recurso de espacio mediante la consola de Apigee en Cloud, sigue estos pasos:
  1. Sigue los pasos que se indican en Crear un flujo compartido en la interfaz de usuario de Apigee para crear un flujo compartido desde cero o subir un paquete de flujo.
  2. En el paso 4, verás un campo adicional en el cuadro de diálogo Crear un flujo compartido, donde podrás seleccionar un espacio para el proxy de API. Selecciona un espacio en el cuadro de lista. Si no quieres asignar el proxy de API a un espacio, puedes omitir este campo.
  3. Haz clic en Crear para crear el flujo compartido.

API de Apigee

Para crear un flujo compartido como recurso de espacio mediante las APIs de Apigee, usa el siguiente comando:

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/sharedflows?name=FLOW_NAME&space=SPACE_NAME&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data" \
    -F "file=@SHARED_FLOW_BUNDLE"

Donde:

  • ORG_NAME es el nombre de tu organización de Apigee.
  • FLOW_NAME es el nombre del flujo compartido que estás creando. El nombre debe ser único en todo el mundo, no solo en el espacio.
  • SPACE_NAME es el nombre del espacio en el que estás creando el flujo compartido.
  • SHARED_FLOW_BUNDLE es el nombre del archivo del paquete de flujo compartido.

Por ejemplo, con el siguiente comando, un miembro del equipo rojo crea un flujo compartido llamado flujo-1 asociado al espacio rojo de la organización acme:

curl "https://apigee.googleapis.com/v1/organizations/acme/sharedflows?name=flow-1&space=red&action=import" \
    -X POST -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: multipart/form-data" \
    -F "file=@sharedflow-bundle.zip"

En el siguiente ejemplo se muestra la respuesta al comando:

{
  "name": "organizations/acme/sharedflows/flow-1",
  "revision": 1,
  "sharedFlowId": "flow-1",
  "space": "red",
  "createTime": ...,
  "updateTime": ...
}

Gestionar un producto de API como recurso de espacio

Los miembros asignados a un espacio pueden crear un producto de API para agrupar sus proxies de API. Al crear productos de API, los miembros de un espacio pueden seleccionar cualquier proxy de API al que tengan acceso, incluidos los proxies creados directamente en la organización y los proxies de API creados como recursos en los espacios a los que pertenezcan. Los miembros de otros espacios no podrán acceder a estos productos de API ni gestionarlos.

Crea un producto de API como recurso de espacio mediante la consola de Apigee en Cloud o la API, tal como se describe en las siguientes secciones.

Apigee en la consola de Cloud

Para crear un producto de API como recurso de espacio mediante Apigee en la consola de Cloud, sigue estos pasos:

  1. Sigue los pasos que se indican en Crear un producto de API.
  2. En el paso 4, verá un campo adicional en la página Detalles del producto, donde podrá seleccionar un espacio para el producto de API. Selecciona un espacio en el cuadro de lista. Si no quieres asignar el producto de la API a un espacio, puedes omitir este campo.
  3. Rellena el resto de la información de configuración y haz clic en Guardar.

API de Apigee

Para crear un producto de API como recurso Space mediante la API, envía una solicitud al endpoint apiproducts/create y añade la propiedad space.

Por ejemplo, el siguiente comando crearía un producto de API llamado product-1 en la organización acme y lo asociaría al espacio red:

curl -X POST "https://apigee.googleapis.com/v1/organizations/acme/apiproducts" \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-type: application/json" -d \
      `{
        "name": "product-1",
        "displayName": "product-1",
        "approvalType": "auto",
        "attributes": [
          {
            "name": "access",
            "value": "internal"
          }
        ],
        "environments": [
          "test"
        ],
        "operationGroup": {
          "operationConfigs": [
            {
              "apiSource": "proxy-1",
              "operations": [
                {
                  "resource": "/",
                  "methods": [
                    "GET"
                  ]
                }
              ]
            }
          ],
          "operationConfigType": "proxy"
        },
        "space": "red"
      }'

En el siguiente ejemplo se muestra la respuesta al comando:

{
  "name": "product-1",
  "displayName": "product-1",
  "approvalType": "auto",
    "attributes": [
      {
        "name": "access",
        "value": "internal"
      }
    ],
    "environments": [
    "test"
  ],
  "createdAt": "1741977778448",
  "lastModifiedAt": "1741977778448",
  "operationGroup": {
    "operationConfigs": [
      {
        "apiSource": "proxy-1",
        "operations": [
          {
            "resource": "/",
            "methods": [
              "GET"
            ]
          }
        ]
      }
    ],
    "operationConfigType": "proxy"
  },
  "space": "red"
}

Mostrar todos los recursos de la API asociados a un espacio

En todas las operaciones de lista, incluidas ListApiProxies, ListSharedFlows y ListApiProducts, puedes especificar un nombre de espacio para enumerar todos los recursos asociados a ese espacio. Si no especificas un nombre de espacio, la operación de lista devolverá todos los recursos de la organización a los que tengas permiso para acceder, independientemente de si están asociados a un espacio o no.

Es importante tener en cuenta que, al usar la función Apigee Spaces, los resultados de las operaciones list de los recursos de la API asignados a un espacio se limitarán a los resultados de los espacios a los que pueda acceder la entidad de seguridad. Por ejemplo, si a acme-team@acme.com se le asigna el rol apigee.spaceContentEditor en el espacio rojo, los miembros del equipo acme-team que usen la operación list solo verán los proxies de la API que estén asociados al espacio rojo y no todos los proxies de la API de la organización.

Para realizar esta tarea, debes tener el permiso apigee.apiResources.list. Este permiso se incluye en el rol Apigee > Apigee Organization Admin.

Mostrar los recursos de API asociados a un espacio específico

Consulta todos los recursos de API asociados a un espacio específico en la consola de Apigee en Cloud o mediante la API, tal como se describe en las siguientes secciones.

Apigee en la consola de Cloud

Para enumerar todos los recursos de API asociados a un espacio específico en la consola de Apigee en Cloud, abre la página de descripción general del tipo de recurso correspondiente (proxies de API, flujos compartidos o productos de API). En el cuadro Filtro, selecciona la opción Espacio de la lista y, a continuación, introduce el nombre del espacio. Se mostrará la lista de recursos asignados a ese espacio. Ten en cuenta que solo se muestran los recursos asociados a un espacio del que el usuario sea miembro.

API de Apigee

Para obtener una lista de todos los recursos de API asociados a un espacio concreto, utiliza el siguiente comando:

curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE?space=SPACE_NAME"

Donde:

  • ORG_NAME es el nombre de tu organización de Apigee.
  • RESOURCE_TYPE es el tipo de recurso que estás mostrando. Los valores válidos son los siguientes:
    • apis
    • sharedFlows
    • apiProducts
  • SPACE_NAME es el nombre del espacio en el que vas a incluir el recurso.

Por ejemplo, con el siguiente comando, un miembro del equipo rojo muestra todos los proxies de API asociados al espacio rojo de la organización acme:

curl -H  "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/acme/apis?space=red"

En el siguiente ejemplo se muestra la respuesta al comando:

{
  "proxies": [
    {
      "basepaths": "/proxy-1",
      "revision": "1",
      "apiProxyId": "proxy-1",
      "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
      "space": "red",
      "createTime": ...,
      ....
    }
  ]
}

Mostrar recursos de la API sin especificar un espacio

Consulta todos los recursos de API sin especificar un espacio en Apigee en la consola de Cloud o mediante la API, como se describe en las siguientes secciones.

Apigee en la consola de Cloud

Para ver una lista de todos los recursos de API de un tipo determinado en Apigee en la consola de Cloud, independientemente de la asociación de espacios, abre la página de descripción general del tipo de recurso correspondiente (proxies de API, flujos compartidos o productos de API). Se muestra una lista de todos los recursos disponibles. Ten en cuenta que solo se muestran los recursos que el usuario tiene permiso para ver. Esto incluye los recursos asociados a un espacio o a espacios en los que el usuario sea miembro, o los recursos que no estén asociados a ningún espacio.

API de Apigee

También puedes enumerar los recursos de la API sin especificar un espacio con el siguiente comando:

curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE"

Donde:

  • ORG_NAME es el nombre de tu organización de Apigee.
  • RESOURCE_TYPE es el tipo de recurso que estás mostrando. Los valores válidos son los siguientes:
    • apis
    • sharedFlows
    • apiProducts

Por ejemplo, un usuario con acceso Organization Admin a todos los recursos de la organización puede usar el siguiente comando para enumerar todos los proxies de API de la organización acme:

curl -H  "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations/acme/apis"

Si la organización acme tiene tres proxies, el comando devolverá detalles sobre los tres. Por ejemplo:

{
  "proxies": [
    {
      "basepaths": "/proxy-1",
      "revision": "1",
      "apiProxyId": "proxy-1",
      "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
      "space": "red",
      "createTime": ...,
      ....
    },
    {
      "basepaths": "/proxy-2",
      "revision": "1",
      "apiProxyId": "proxy-2",
      "resourceName": "organizations/acme/apis/proxy-2/revisions/1",
      "space": "blue",
      "createTime": ...,
      ....
    },
    {
      "basepaths": "/proxy-3",
      "revision": "1",
      "apiProxyId": "proxy-3",
      "resourceName": "organizations/acme/apis/proxy-3/revisions/1",
      "space": "green",
      "createTime": ...,
      ....
    }
  ]
}

Si otro usuario con acceso apiAdmin a los recursos del espacio rojo usa el mismo comando, este solo devolverá detalles sobre proxy-1. La respuesta tiene este aspecto:

{
  "proxies": [
    {
      "basepaths": "/proxy-1",
      "revision": "1",
      "apiProxyId": "proxy-1",
      "resourceName": "organizations/acme/apis/proxy-1/revisions/1",
      "space": "red",
      "createTime": ...,
      ....
    }
  ]
}

Siguientes pasos