Le API API Connect REST

Come iniziare a utilizzare le API API Connect REST

Le API API Connect REST possono essere utilizzate per le seguenti operazioni:

  • Automatizzare la gestione di API Connect.
  • Implementare script e strumenti per supportare un ambiente di integrazione continuo per lo sviluppo e la pubblicazione di API.
  • Gestire i cataloghi delle API e i relativi sottoscrittori.
  • Visualizza i dati analitici.

La documentazione di riferimento completa per le API API Connect REST è disponibile qui: Documentazione API Connect API REST.

Prerequisiti

Per utilizzare le API API Connect REST, è necessario soddisfare i seguenti prerequisiti:

  • Si consideri un API Connect utente che fa parte di un'organizzazione di fornitori o di consumatori.
  • Credenziali dell'app: un client_id e un client_secret. Queste credenziali possono essere ottenute dall'interfaccia utente di API Manager oppure fornite dal proprio API Connect amministratore.

Per ottenere gli URL degli endpoint API e le credenziali dell'app, segui questi passaggi:

  1. Nella pagina iniziale dell'interfaccia utente di API Manager, fare clic sul riquadro "Scarica il toolkit".
  2. Scarica le credenziali del Toolkit (non è necessario scaricare la CLI o l'API Designer).
  3. Apri il file credentials.json scaricato per visualizzare la piattaforma e gli endpoint client, nonché le credenziali necessarie per richiamare le API su tali endpoint:
    {
      "cloud_id": "e8fcdec3-bfb9-44bd-bf90-03d8639c4916",
      "toolkit": {
        "endpoint": "https://example-platform-api.ibm.com/api",
        "client_id": "7ad7b6c5-fa07-4222-808d-8de7266dcd1a",
        "client_secret": "b7127e44-4811-48be-be9d-6591302de04a"
      },
      "consumer_toolkit": {
        "endpoint": "https://example-consumser-api.ibm.com/consumer-api",
        "client_id": "3b10e0db-1cd4-4aa8-af02-51a83e334f1c",
        "client_secret": "a5a672b7-e3b2-4d2b-984b-4059ea82ae65"
      },
      "governance": {
        "endpoint": "https://example-governance.ibm.com/governance",
        "client_id": "ba48537c-7a6e-4232-92b6-ae67ad764933",
        "client_secret": "790d8a6d-e323-46bd-a05c-3d212e93d794"
      },
      "discovery": {
        "endpoint": "https://example-discovery.ibm.com/discovery",
        "client_id": "d872a2f4-bc6e-4e91-b187-bbb5b99d4605",
        "client_secret": "c0b5ddf9-58e6-4246-88de-243ce217731a"
      }
    }
    Gli endpoint e le credenziali contenuti nel credentials.json file sono
    1. toolkit: L'endpoint dell'API della piattaforma. Utilizzare questa opzione per le chiamate API a livello di organizzazione del fornitore.
      Draft comment: iainsoed@uk.ibm.com
      It is confusing that the first part of the path for platform api calls is included here. The platform endpoint as the user defines on install is example-platform-api.ibm.com, it is not example-platform-api.ibm.com/api. Same with consumer-api.
    2. consumer_toolkit: L'endpoint dell'API per i consumatori. Utilizza questa opzione per le chiamate API relative a un'organizzazione cliente, come ad esempio la creazione di un'app in un'organizzazione cliente.
    3. governance: Consulta la funzione "Governance delle API ".
    4. discovery: Consulta la funzione "API Discovery".
    Draft comment: iainsoed@uk.ibm.com
    what is cloud_id for?
Nota: il tuo API Connect amministratore cloud potrebbe fornirti credenziali diverse per l'app. In questo caso, non utilizzare le credenziali contenute nel credentials.json file.

Ottenere un token al portatore

Ogni chiamata alle API REST deve essere autenticata tramite un token bearer nell'intestazione Authorization HTTP. Crea una chiave API. Per ulteriori informazioni su come creare una chiave API, consulta la sezione Gestione delle chiavi API REST della piattaforma.

Utilizza le credenziali della tua app per ottenere un token bearer:
curl -v -k -X POST -d '{"api_key": "<api_key>", "client_id": "<client_id>", "client_secret": "<client_secret>", "grant_type": "api_key"}' -H 'Content-Type: application/json' -H 'Accept: application/json' https://<management_server_platform_api_endpoint>/api/token
dove:
  • <api-key> è la chiave API che hai generato.
  • <client_id> è l'ID cliente riportato nella sezione "toolkit" del credentials.json file, oppure quello fornito dall'amministratore del cloud di API Connect.
  • <client_secret> è il segreto client riportato nella sezione "toolkit" del credentials.json file, oppure fornito dal proprio amministratore del cloud API Connect.
  • provider/default-idp-2 per i membri dell'organizzazione dei fornitori.
  • consumatori: <provider org>:<catalog>/<catalog>-idp per i membri delle associazioni dei consumatori.

Il token al portatore viene restituito nella access_token proprietà:

{
    "access_token": "<bearer_token>",
    "token_type": "Bearer",
    "expires_in": 28800
}
Nota: il expires_in valore indica il numero di secondi che mancano alla scadenza del token. Alla scadenza, è necessario richiedere un nuovo token al portatore.

Effettuare chiamate all'API REST

Utilizza il tuo token al portatore quando effettui chiamate all'API REST:
curl -k -X <HTTP Method> --url 'https://<rest api endpoint>/<api path> -H 'Authorization: Bearer <bearer_token>'
Se effettui chiamate all'API consumer, devi includere un'intestazione aggiuntiva che specifichi l'organizzazione del provider e il catalogo:
-H 'X-IBM-Consumer-Context: <provider org>.<catalog>'

Esempi di chiamate all'API REST

Ottieni un elenco delle organizzazioni di fornitori
Utilizza un token al portatore creato con le credenziali di un membro dell'organizzazione del fornitore e specifica l'endpoint dell'API della piattaforma:
curl -k -X GET --url 'https://<platform api endpoint>/api/orgs' -H 'Authorization: Bearer <bearer_token>'
Ottieni un elenco delle app presenti in un catalogo
Utilizza un token al portatore creato con le credenziali di un membro dell'organizzazione consumatrice, specifica l'endpoint API del consumatore e includi X-IBM-Consumer-Context l'intestazione:
curl -k -X GET --url 'https://<consumer api endpoint>/consumer-api/orgs/<consumer org>/apps' -H 'X-IBM-Consumer-Context: <provider org>.<catalog>' -H 'Authorization: Bearer <bearer_token>'
Ottieni i dati degli eventi dell'API di analisi per un catalogo:
curl -k -X GET --url 'https://<platform api endpoint>/analytics/<analytics service>/orgs/<provider org>/events' -H 'Authorization: Bearer <bearer_token>'

Per i dati analitici relativi alle organizzazioni di fornitori, utilizzare <endpoint API della piattaforma>.

Per i dati analitici relativi alle organizzazioni dei consumatori, utilizzare <endpoint API per i consumatori> e /consumer-analytics al posto di /analytics. Includi anche X-IBM-Consumer-Context l'intestazione. Ad esempio:
curl -k -X GET --url 'https://<consumer api endpoint>/consumer-analytics/orgs/<consumer org>/dashboard' -H 'X-IBM-Consumer-Context: <provider org>.<catalog>' -H 'Authorization: Bearer <bearer_token>'

Per ulteriori informazioni sull'interrogazione dei dati di analisi tramite l'API REST, consultare la sezione "Utilizzo dell'API REST di analisi ".

Documentazione di riferimento per le API API Connect REST: Documentazione API Connect delle API REST.

Risoluzione dei problemi relativi alle chiamate API REST non riuscite

Il codice di ritorno e il messaggio di errore di HTTP forniscono informazioni sulle possibili cause dell'errore:

  • HTTP 403: Accesso negato. Verifica che il tuo token al portatore sia stato creato con le credenziali corrette per la chiamata API.
  • HTTP 404: Pagina non trovata. Verifica che l'endpoint dell'API URL e il percorso siano corretti. Stai effettuando una chiamata API di consumo sull'endpoint API della piattaforma?
  • HTTP 401: Accesso non autorizzato. Verifica che il tuo token al portatore sia corretto e non sia scaduto. Se viene restituito questo messaggio quando richiedi un token bearer, verifica che, username password, realm, client_id, e client_secret siano corretti.