Gestión de productos de API

Utilice los comandos apic products y apic apis para gestionar los Productos y APIs publicados en los Catálogos IBM® API Connect . Utilice la opción --scope space para gestionar Productos y APIs publicados en Espacios dentro de Catálogos.

Resumen de mandatos de gestión de productos

La tabla siguiente resume los mandatos disponibles para gestionar productos de API. A continuación se muestran ejemplos de utilización.
Mandato de ejemplo Descripción
apic config:set catalog=https://platform-api.myserver.com/api/catalogs/myorg/sandbox Establecer el catálogo predeterminado.
apic login --username some-user --password some-password --server platform-api.myserver.com --realm provider/my-identity-provider Iniciar la sesión en el servidor de gestión.

Para obtener detalles completos sobre cómo iniciar sesión en el servidor de gestión desde la CLI, consulte Inicio de sesión en el servidor de gestión.

apic create:api --title Routes --product "ClimbOn" Crear el producto y la API.
apic products:publish climbon.yaml Publicar el producto en el catálogo predeterminado. Añadir el argumento --stage para desplegar el producto.
apic products:list-all --scope catalog Listar los productos del catálogo predeterminado.
apic products:get climbon:1.0.0 --output - Visualizar las propiedades del producto. Omitir el argumento de salida para descargarlo un archivo.
apic apis:list-all --scope catalog Listar las API del catálogo.
apic apis:get routes:1.0.0 --output - Obtener las propiedades de la API. Omitir el argumento de salida para descargarlo un archivo.
apic products:replace climbon:1.0.0 mapfile.txt Sustituya el Producto indicado en el comando por el Producto escalonado o publicado que se designa en el mapfile. El Producto sustituido se retira.
apic products:supersede climbon:1.0.0 mapfile.txt Sustituye el Producto indicado en el comando por el Producto escalonado o publicado que se designa en el mapfile. El Producto sustituido está obsoleto.
apic products:delete climbon:1.0.0 Suprimir el producto del catálogo. El producto debe estar retirado o en desuso.

Utilización de los mandatos products y apis a lo largo de un ciclo de vida completo

Este ejemplo muestra un ciclo de vida complejo en el que una nueva versión de un producto y API sustituye a la versión original en tiempo de ejecución.

Nota: Si el archivo OpenAPI que define la API utiliza un campo $ref para hacer referencia a un fragmento de código OpenAPI definido en un archivo aparte, el campo $ref se sustituye por el contenido del archivo de destino antes de que el producto que contiene la API se transfiera o publique con el mandato apic publish . Para obtener más información, consulte Utilización de $ref para reutilizar fragmentos de código en los archivos OpenAPI.
Establezca el Catálogo por defecto e inicie sesión en la nube mgmnthost.com ' API Connect
apic config:set catalog=https://platform-api.myserver.com/api/catalogs/climbon/sandbox
apic login --username some-user --password some-password --server platform-api.myserver.com --realm my-identity-provider

Para obtener detalles completos sobre cómo iniciar sesión en el servidor de gestión desde la CLI, consulte Inicio de sesión en el servidor de gestión.

Crear y publicar una versión inicial
apic create:api --title Routes --version 1.0.0 --filename routes100.yaml
apic create:product --title "Climb On" --version 1.0.0 --apis routes100.yaml --filename climbon100.yaml
apic products:publish climbon100.yaml
Crear una versión para solucionar un error en la API, desplegarla en el catálogo
apic create:api --title Routes --version 1.0.1 --filename routes101.yaml
apic create:product --title "Climb On" --version 1.0.1 --apis routes101.yaml --filename climbon101.yaml
apic products:publish --stage climbon101.yaml
Inspeccionar el catálogo
apic products:list-all --scope catalog
Este comando lista todos los Productos del catálogo. Copie el ID del producto climbon:1.0.1. El ID es similar al del ejemplo siguiente.

https:/server/api/catalogs/3eca6046-3c27-4ad/ab8772bf-0f65-45/products/8f854623-bda1-4f9
Crear un archivo de correlaciones

Por ejemplo, si reemplaza un Producto, el archivo de asignación especifica el Producto a reemplazar y asigna los Planes del Producto de origen al Producto de destino. Por ejemplo, si está sustituyendo climbon:1.0.0 por climbon:1.0.1, la propiedad product_url especifica el URL de climbon:1.0.0.

Este archivo tiene el formato siguiente:

product_url: https:/server/api/catalogs/{id}/products/{id}
plans:
- source: {source_plan_name_1}
  target: {target_plan_name_1}
- source: {source_plan_name_2}
  target: {target_plan_name_2}
            .
            .
            .
Nota:
  • Los nombres de los planes de origen y destino pueden ser iguales o diferentes.
  • Cada plan del producto que está sustituyendo debe estar correlacionado con un plan del producto de sustitución.
Sustitución en caliente de la versión 1.0.0 por la 1.0.1
apic products:replace climbon:1.0.1 PRODUCT_PLAN_MAPPING_FILE
Una vez sustituido de este modo, un Producto especificado se da de baja. Ya no estará activo.
Nota:

El Producto especificado en el comando es el Producto de sustitución. Por ejemplo, si sustituye climbon:1.0.0 por climbon:1.0.1 , el producto especificado en el comando será climbon:1.0.1.

Reemplazar la versión 1.0.0 por la 1.0.1
En lugar de sustituir en caliente un producto existente por uno nuevo, (generalmente una versión actualizada), puede reemplazar el producto existente por uno nuevo. Al sustituir un producto, todas las suscripciones de aplicaciones externas a dicho producto se trasladan automáticamente al producto nuevo. Al reemplazar un producto, las suscripciones no se trasladan automáticamente al producto nuevo; debe realizarse alguna acción para suscribir las aplicaciones externas al producto de reemplazo.
El mandato para reemplazar un producto utiliza el mismo archivo de correlaciones que el mandato para sustituir un producto. El nombre del Producto sustituto se indica en la orden.
apic products:supersede climbon:1.0.1 PRODUCT_PLAN_MAPPING_FILE
Una vez sustituido un Producto, éste se marca como obsoleto, lo que significa que no se permiten más suscripciones al Producto, aunque sigue activo y las suscripciones existentes siguen funcionando.
Nota: El Producto especificado en el comando es el Producto reemplazante. Por ejemplo, si sustituye climbon:1.0.0 por climbon:1.0.1 , el producto especificado en el comando será climbon:1.0.1. El archivo de asignación especifica la dirección URL del Producto que está sustituyendo.
Establecer un destino de migración
Es posible establecer un destino de migración para el producto existente. Esto ayuda en la migración.
Utilice un mandato como el siguiente para establecer el destino de la migración.
apic products:set-migration-target climbon:1.0.0 PRODUCT_PLAN_MAPPING_FILE
Nota: El Producto que se especifica en el comando es el Producto del que desea migrar las suscripciones. El archivo de correlaciones especifica el producto de destino para las suscripciones.
Una vez establecido un objetivo de migración, los desarrolladores de aplicaciones externas pueden migrar sus suscripciones de aplicaciones a través del Portal del Desarrollador con facilidad. También es posible ejecutar una migración de suscripción utilizando el siguiente comando.
apic products:execute-migration-target climbon:1.0.0
Suprimir un producto
Cuando el producto sustituido o reemplazado ya no es necesario, puede suprimirse.
apic products:delete climbon:1.0.0

Operaciones adicionales de productos y API

Además de las funciones de gestión del ciclo de vida, puede descargar Productos y APIs en un catálogo o espacio utilizando el subcomando clone :
Mandato Descripción
apic products:clone Descargar del catálogo o espacio todos los productos y sus API.
apic apis:clone Descargar del catálogo o espacio todas las API.
También puede borrar todos los Productos y sus APIs de un catálogo, lo que resulta especialmente útil para un catálogo de desarrollo. Para confirmar la operación, debe especificar el nombre del catálogo como valor del parámetro --confirm :
apic products:clear --confirm catalog_name
donde nombre_catálogo es el nombre del catálogo.

Puede utilizar un espacio para particionar un catálogo de modo que varios equipos puedan gestionar productos y APIs independientemente en un solo catálogo. Un espacio es conceptualmente como un subcatálogo, salvo que los productos y las API de todos los espacios de un catálogo se publican en el mismo portal para desarrolladores. Para más información sobre Spaces, consulte Uso de la sindicación en IBM API Connect.

Para gestionar los Productos y APIs publicados en un Espacio, incluya la opción --scope space con los comandos apic products y apic apis . Por ejemplo, para listar los Productos contenidos en un Espacio llamado vuelos, utilice el siguiente comando:
apic products --scope space --space flights --catalog production --org climbonorg --server platform-api.myserver.com

Cambio del estado del ciclo de vida de un producto en un catálogo o espacio

Para cambiar directamente el estado del ciclo de vida de un producto que se ha desplegado o publicado previamente en un catálogo o espacio, siga estos pasos:

  • Introduzca el siguiente comando (el carácter de guión final significa que el comando toma la entrada del comando):
    apic products:update product_name:version --server mgmt_endpoint_url --org organization --scope scope --catalog catalog [--space space] -
    donde:
    • nombre_producto es el nombre del producto cuyo estado de ciclo de vida desea cambiar.
    • version es la versión de dicho producto.
    • url_punto_final_gest es el URL de punto final del API.
    • organización es el nombre de la organización de proveedores en la que se ha desplegado o publicado anteriormente el producto.
    • ámbito tiene uno de los valores siguientes:
      • catalog si el catálogo no tiene habilitados Espacios .
      • space si el catálogo tiene habilitados Espacios . Si especifica space para el parámetro --scope , también debe suministrar el parámetro --space .
    • catálogo es el nombre del catálogo en la que se ha desplegado o publicado anteriormente el producto.
    • (Opcional) space es el nombre del Espacio. El parámetro --space es necesario si el catálogo tiene habilitados Espacios , en cuyo caso también debe incluir --scope space en el mandato.
    El mandato devuelve:
    Reading PRODUCT_FILE arg from stdin
  • Especifique los datos siguientes, seguidos de una línea nueva:
    state: new_state
    donde estado_nuevo es el estado al que desea cambiar el producto, y debe tener uno de los valores siguientes.
    • Desplegado
    • Publicado
    • En desuso
    • Retirado
    • Archivado
  • Pulse CTRL D para terminar la entrada. Si el mandato es satisfactorio, se confirma el cambio del estado del ciclo de vida.
    Por ejemplo:
    apic products:update finance:1.0.0 --server https://myserver.com --org development --scope catalog --catalog sandbox -                    
    Reading PRODUCT_FILE arg from stdin
    state: published
    finance:1.0.0    [state: published]   https://myserver.com/api/catalogs/dce12994-a6a1-487b-83b6-c73bd8498799/006827d5-9e82-427a-abe6-be5b126210f7/products/0f0af980-f505-4f36-b09c-d7b1c9c1a2f2
Nota:

El comando falla si el cambio de estado del ciclo de vida no está permitido.

Por ejemplo, se permiten los siguientes cambios de estado del ciclo de vida:
  • De la puesta en escena a la publicación
  • De obsoleto a retirado
Los siguientes cambios de estado del ciclo de vida no están permitidos:
  • De lo publicado a lo escenificado
  • De jubilado a publicado

Para obtener detalles completos, consulte El ciclo de vida del producto.

Para listar todos los productos de un catálogo o espacio, junto con sus estados de ciclo de vida, utilice el mandato siguiente:
apic products:list-all --server mgmt_endpoint_url --org organization --scope scope --catalog catalog [--space space]
Por ejemplo:
apic products:list-all --server https://myserver.com --org development --scope catalog --catalog sandbox
graphql-services:1.0.0    [state: staged]      https://myserver.com/api/catalogs/dce12994-a6a1-487b-83b6-c73bd8498799/006827d5-9e82-427a-abe6-be5b126210f7/products/7652d568-b396-4bfa-bf71-2f18cea63737   
finance:1.0.0             [state: published]   https://myserver.com/api/catalogs/dce12994-a6a1-487b-83b6-c73bd8498799/006827d5-9e82-427a-abe6-be5b126210f7/products/0f0af980-f505-4f36-b09c-d7b1c9c1a2f2
Para averiguar el estado del ciclo de vida de un producto específico, utilice el mandato siguiente:
apic products:get product_name:version --server mgmt_endpoint_url --org organization --scope scope --catalog catalog [--space space] --fields state --output -
Por ejemplo:
apic products:get finance:1.0.0 --server https://myserver.com --org development --scope catalog --catalog sandbox --fields state --output -
state: published

Scripts de ejemplo

Un conjunto de scripts de ejemplo que muestran cómo crear y gestionar organizaciones, usuarios, aplicaciones, productos y API está disponible en https://github.com/ibm-apiconnect/example-toolkit-scripts.