Gestione dei prodotti API

Utilizza i comandi apic productsapic apis e per gestire i prodotti e le API pubblicati nei IBM® API Connect cataloghi. Utilizza --scope space l'opzione per gestire i prodotti e le API pubblicati negli Spaces all'interno dei cataloghi.

Riepilogo comandi di gestione prodotti

La seguente tabella riepiloga i comandi disponibili per la gestione dei prodotti API. Seguono esempi di utilizzo.
Tabella 1. Esempio di comando e descrizione
Comando di esempio Descrizione
apic config:set catalog=https://platform-api.myserver.com/api/catalogs/myorg/sandbox Impostare il catalogo predefinito.
apic login --username some-user --password some-password --server platform-api.myserver.com --realm provider/my-identity-provider Accedere al server di gestione.

Per i dettagli completi su come accedere al tuo server di gestione dalla CLI, vedi Accesso al server di gestione.

apic create:api --title Routes --product "ClimbOn" Crea il prodotto e l'API.
apic products:publish climbon.yaml Pubblicare il prodotto nel catalogo predefinito. Aggiungere l'argomento --stage per mettere in scena il Prodotto.
apic products:list-all --scope catalog Elenca i Prodotti nel catalogo predefinito.
apic products:get climbon:1.0.0 --output - Visualizzare le proprietà del prodotto. Omettere l'argomento di emissione da scaricare in un file.
apic apis:list-all --scope catalog Elenca le API nel Catalogo.
apic apis:get routes:1.0.0 --output - Ottenere le proprietà API. Omettere l'argomento di emissione da scaricare in un file.
apic products:replace climbon:1.0.0 mapfile.txt Sostituire il prodotto indicato nell'ordine con il prodotto in fase di sviluppo o pubblicato specificato nel file di mappatura. Il prodotto sostituito è fuori produzione.
apic products:supersede climbon:1.0.0 mapfile.txt Sostituire il prodotto indicato nell'ordine con il prodotto in fase di lancio o già pubblicato specificato nel file di mappatura. Il prodotto sostituito è obsoleto.
apic products:delete climbon:1.0.0 Eliminare il Prodotto dal Catalogo. Il prodotto deve essere ritirato o obsoleto.

Utilizzo dei comandi products e apis attraverso un ciclo di vita completo

Questo esempio mostra un ciclo di vita complesso in cui una nuova versione di un prodotto e di un'API sostituisce la versione originale al runtime.

Nota: se il file OpenAPI che definisce la tua API utilizza un campo $ref per fare riferimento a un frammento di codice OpenAPI definito in un file separato, il campo $ref viene sostituito con il contenuto del file di destinazione prima che il prodotto che contiene l'API venga preparato o pubblicato con il comando apic publish . Per ulteriori informazioni, vedi Utilizzo di $ref per riutilizzare i frammenti di codice nei tuoi file OpenAPI.
Imposta il catalogo predefinito ed effettua l'accesso al cloud API Connectmgmnthost.com
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

Per i dettagli completi su come accedere al tuo server di gestione dalla CLI, vedi Accesso al server di gestione.

Crea e pubblica una versione iniziale
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
Crea una nuova versione per correggere un bug nell'API, preparalo al catalogo
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
Esamina il catalogo
apic products:list-all --scope catalog
Questo comando elenca tutti i prodotti presenti nel catalogo. Copiare l'ID del prodotto climbon:1.0.1 . L'ID è simile al seguente esempio.

https:/server/api/catalogs/3eca6046-3c27-4ad/ab8772bf-0f65-45/products/8f854623-bda1-4f9
Crea un file di associazione

Ad esempio, se si sostituisce un prodotto, il file di mappatura specifica il prodotto da sostituire e mappa i piani dal prodotto di origine al prodotto di destinazione. Ad esempio, se si sta sostituendo climbon:1.0.0 con climbon:1.0.1 , la proprietà product_url specifica l' URL e di climbon:1.0.0.

Questo file ha il modulo seguente:

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:
  • I nomi del piano di origine e di destinazione possono essere uguali o diversi.
  • Ogni piano nel prodotto che si sta sostituendo deve essere associato a un piano nel prodotto di sostituzione.
"Hot-replace" versione 1.0.0 con 1.0.1
apic products:replace climbon:1.0.1 PRODUCT_PLAN_MAPPING_FILE
Una volta sostituito in questo modo, il prodotto indicato viene ritirato dal mercato. Non è più attivo.
Nota:

Il prodotto indicato nel comando è il prodotto sostitutivo. Ad esempio, se si sostituisce climbon:1.0.0 con climbon:1.0.1 , il prodotto specificato nel comando è climbon:1.0.1.

Sostituire la versione 1.0.0 con 1.0.1
Invece di sostituire a sistema acceso un prodotto esistente con uno nuovo (di norma una versione aggiornata), è possibile sostituire il prodotto esistente con uno nuovo. Quando si sostituisce un prodotto, tutte le sottoscrizioni dell'applicazione esterna a tale prodotto vengono automaticamente spostate nel nuovo prodotto. Quando si sostituisce un prodotto, le sottoscrizioni non vengono automaticamente spostate nel nuovo prodotto, è necessaria un'azione per sottoscrivere le applicazioni esterne al prodotto sostitutivo.
Il comando per sostituire un prodotto utilizza lo stesso file di associazione del comando per sostituire un prodotto. Il nome del prodotto sostitutivo è indicato nel comando.
apic products:supersede climbon:1.0.1 PRODUCT_PLAN_MAPPING_FILE
Una volta che un prodotto è stato sostituito, viene contrassegnato come "obsoleto", il che significa che non è più possibile sottoscrivere nuovi abbonamenti a tale prodotto, sebbene esso rimanga attivo e gli abbonamenti esistenti continuino a funzionare.
Nota: il prodotto indicato nel comando è quello che sostituisce il precedente. Ad esempio, se si sostituisce climbon:1.0.0 con climbon:1.0.1 , il prodotto specificato nel comando è climbon:1.0.1. Il file di mappatura specifica l' URL e del prodotto che si sta sostituendo.
Imposta una destinazione di migrazione
È possibile impostare una destinazione di migrazione per il prodotto esistente. Ciò consente la migrazione.
Utilizzare un comando simile al seguente per impostare la destinazione della migrazione.
apic products:set-migration-target climbon:1.0.0 PRODUCT_PLAN_MAPPING_FILE
Nota: il prodotto specificato nel comando è quello dal quale si desidera trasferire gli abbonamenti. Il file di associazione specifica il prodotto di destinazione per le sottoscrizioni.
Una volta definita una destinazione di migrazione, gli sviluppatori di applicazioni esterne possono migrare facilmente i propri abbonamenti alle applicazioni tramite il Catalogo dei consumatori. È inoltre possibile eseguire una migrazione degli abbonamenti utilizzando il seguente comando.
apic products:execute-migration-target climbon:1.0.0
Elimina un prodotto
Quando il prodotto sostituito o sostituito non è più necessario, può essere eliminato.
apic products:delete climbon:1.0.0

Operazioni aggiuntive relative ai prodotti e alle API

Oltre alle funzionalità di gestione del ciclo di vita, è possibile scaricare prodotti e API presenti in un catalogo o in uno spazio utilizzando il clone sottocomando:
Tabella 2. Comando e descrizione
Comando Descrizione
prodotti apici: clone Scarica tutti i prodotti e le relative API dal catalogo o spazio.
apic apis: clone Scarica tutte le API dal catalogo o dallo spazio.
È inoltre possibile eliminare tutti i prodotti e le relative API da un catalogo, operazione particolarmente utile nel caso di un catalogo di sviluppo. Per confermare l'operazione, è necessario specificare il nome del catalogo come valore del --confirm parametro:
apic products:clear --confirm catalog_name
dove catalog_name è il nome del catalogo.

Puoi utilizzare uno Spazio per suddividere in partizioni un catalogo in modo che più team possano gestire i Prodotti e le API in modo indipendente in un singolo catalogo. Uno "Spazio" è concettualmente simile a un sottocatalogo, con la differenza che i prodotti e le API presenti in tutti gli spazi all'interno di un catalogo vengono pubblicati nello stesso catalogo dei consumatori. Per ulteriori informazioni su Spaces, consultare la sezione "Utilizzo della syndication" all'indirizzo IBMAPI Connect.

Per gestire i prodotti e le API pubblicati in uno spazio, includere --scope space l'opzione con i comandi apic productsapic apis e. Ad esempio, per elencare i prodotti contenuti in uno spazio denominato "flights", utilizzare il seguente comando:
apic products --scope space --space flights --catalog production --org climbonorg --server platform-api.myserver.com

Modifica dello stato del ciclo di vita di un prodotto in un catalogo o in uno spazio

Per modificare direttamente lo stato del ciclo di vita di un prodotto che è stato precedentemente preparato o pubblicato in un catalogo o in uno spazio, completa la seguente procedura:

  • Digita il seguente comando (il trattino finale indica che il comando richiede un input da parte dell'utente):
    apic products:update product_name:version --server mgmt_endpoint_url --org organization --scope scope --catalog catalog [--space space] -
    dove:
    • nome_prodotto è il nome del prodotto di cui si desidera modificare lo stato del ciclo di vita.
    • version è la versione del prodotto.
    • mgmt_endpoint_url è l'endpoint API della piattaforma URL.
    • organization è il nome dell'organizzazione provider in cui il prodotto è stato precedentemente preparato o pubblicato.
    • scope ha uno dei seguenti valori:
      • catalog se il catalogo non ha Spazi abilitati.
      • space se il catalogo ha Spazi abilitati. Se si specifica il valore space per il --scope parametro, è necessario specificare anche il --space parametro.
    • catalog è il nome del catalogo in cui il prodotto è stato precedentemente preparato o pubblicato.
    • (Facoltativo) "space" è il nome dello spazio. Il parametro --space è obbligatorio se il catalogo ha Spazi abilitati, nel qual caso è necessario includere anche --scope space nel comando.
    Il comando restituisce:
    Reading PRODUCT_FILE arg from stdin
  • Immettere i seguenti dati, seguiti da una nuova linea:
    state: new_state
    dove new_state è lo stato in cui si desidera modificare il prodotto e deve avere uno dei seguenti valori.
    • Sottoposto a staging
    • Pubblicato
    • Obsoleto
    • Ritirato
    • Archiviato
  • Premere CTRL D per terminare l'input. Se il comando ha esito positivo, viene confermata la modifica dello stato del ciclo di vita.
    Ad esempio:
    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:

Il comando fallisce se la modifica dello stato del ciclo di vita non è consentita.

Ad esempio, sono consentiti i seguenti cambiamenti di stato nel ciclo di vita:
  • Dalla messa in scena alla pubblicazione
  • Da "obsoleto" a "ritirato"
Non sono consentiti i seguenti cambiamenti di stato nel ciclo di vita:
  • Dalla pubblicazione alla messa in scena
  • Da pensionato a autore pubblicato

Per i dettagli completi, consultare Il ciclo di vita del prodotto.

Per elencare tutti i prodotti in un catalogo o in uno spazio, insieme ai relativi stati del ciclo di vita, utilizzare il seguente comando:
apic products:list-all --server mgmt_endpoint_url --org organization --scope scope --catalog catalog [--space space]
Ad esempio:
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
Per scoprire lo stato del ciclo di vita di un prodotto specifico, utilizza il seguente comando:
apic products:get product_name:version --server mgmt_endpoint_url --org organization --scope scope --catalog catalog [--space space] --fields state --output -
Ad esempio:
apic products:get finance:1.0.0 --server https://myserver.com --org development --scope catalog --catalog sandbox --fields state --output -
state: published

Script di esempio

All'indirizzo https://github.com/ibm-apiconnect/example-toolkit-scripts è disponibile una raccolta di script di esempio del toolkit che illustrano come creare e gestire organizzazioni, utenti, app, prodotti e API.