Dela via


Importera API:er till ditt API-center från Azure API Management

Den här artikeln visar hur du importerar (lägger till) API:er från en Azure API Management-instans till ditt API Center med hjälp av Azure CLI. Genom att lägga till API:er från API Management i api-inventeringen kan de identifieras och bli tillgängliga för utvecklare, API-programhanterare och andra intressenter i din organisation.

Den här artikeln visar två alternativ för att använda Azure CLI för att lägga till API:er i api-centret från API Management:

  • Alternativ 1 – Exportera en API-definition från en API Management-instans med kommandot az apim api export . Importera sedan definitionen till api-centret.

    Möjliga sätt att importera en API-definition som exporterats från API Management är:

  • Alternativ 2 – Importera API:er direkt från API Management till api-centret med kommandot az apic import-from-apim .

När du har importerat API-definitioner eller API:er från API Management kan du lägga till metadata och dokumentation i API-centret för att hjälpa intressenter att identifiera, förstå och använda API:et.

Förutsättningar

  • Ett API-center i din Azure-prenumeration. Om du inte har skapat något läser du Snabbstart: Skapa ditt API-center.

  • En eller flera instanser av Azure API Management, i samma eller en annan prenumeration. När du importerar API:er direkt från API Management måste API Management-instansen och API Center finnas i samma katalog. Om du inte har skapat någon läser du Skapa en Azure API Management-instans.

  • En eller flera API:er som hanteras i din API Management-instans som du vill lägga till i DITT API Center.

  • För Azure CLI:

    Kommentar

    az apic kommandon kräver Azure CLI-tillägget apic-extension . Om du inte har använt az apic kommandon kan tillägget installeras dynamiskt när du kör ditt första az apic kommando, eller så kan du installera tillägget manuellt. Läs mer om Azure CLI-tillägg.

    Se viktig information för de senaste ändringarna och uppdateringarna apic-extensioni .

    Kommentar

    Azure CLI-kommandoexempel i den här artikeln kan köras i PowerShell eller ett bash-gränssnitt. Vid behov på grund av olika variabelsyntax tillhandahålls separata kommandoexempel för de två gränssnitten.

Alternativ 1: Exportera en API-definition från API Management och importera den till DITT API Center

Exportera först ett API från API Management-instansen till en API-definition med hjälp av exportkommandot az apim api . Beroende på ditt scenario kan du exportera API-definitionen till en lokal fil eller en URL.

Exportera API till en lokal API-definitionsfil

Följande exempelkommando exporterar API:et med identifieraren my-api i api:ets myAPIManagement-instans . API:et exporteras i OpenApiJson-format till en lokal OpenAPI-definitionsfil på den sökväg som du anger.

#! /bin/bash
az apim api export --api-id my-api --resource-group myResourceGroup \
    --service-name myAPIManagement --export-format OpenApiJsonFile \
    --file-path "/path/to/folder"
#! PowerShell syntax
az apim api export --api-id my-api --resource-group myResourceGroup `
    --service-name myAPIManagement --export-format OpenApiJsonFile `
    --file-path '/path/to/folder'

Exportera API till en URL

I följande exempel exporterar az apim api export API med identifieraren my-api i OpenApiJson-format till en URL i Azure Storage. URL:en är tillgänglig i cirka 5 minuter. Här lagras värdet för URL:en i variabeln $link .

#! /bin/bash
link=$(az apim api export --api-id my-api --resource-group myResourceGroup \
    --service-name myAPIManagement --export-format OpenApiJsonUrl --query properties.value.link \
    --output tsv)
# PowerShell syntax
$link=$(az apim api export --api-id my-api --resource-group myResourceGroup `
    --service-name myAPIManagement --export-format OpenApiJsonUrl --query properties.value.link `
    --output tsv)

Registrera API i ditt API Center från exporterad API-definition

Du kan registrera ett nytt API i api-centret från den exporterade definitionen med hjälp av kommandot az apic api register .

I följande exempel registreras ett API i API-centret myAPICenter från en lokal OpenAPI-definitionsfil med namnet definitionFile.json.

az apic api register --resource-group myResourceGroup --service-name myAPICenter --api-location "/path/to/definitionFile.json"

Importera API-definition till ett befintligt API i DITT API Center

I följande exempel används kommandot az apic api definition import-specification för att importera en API-definition till ett befintligt API i API-centret myAPICenter . Här importeras API-definitionen från en URL som lagras i variabeln $link .

Det här exemplet förutsätter att du har ett API med namnet my-api och en associerad API-version v1-0-0 och definitionsentiteten openapi i api-centret. Om du inte gör det kan du läsa Lägga till API:er i ditt API Center.

#! /bin/bash
az apic api definition import-specification \
    --resource-group myResourceGroup --service-name myAPICenter \
    --api-id my-api --version-id v1-0-0 \
    --definition-id openapi --format "link" --value '$link' \
    --specification '{"name":"openapi","version":"3.0.2"}'
# PowerShell syntax
az apic api definition import-specification `
    --resource-group myResourceGroup --service-name myAPICenter `
    --api-id my-api --version-id v1-0-0 `
    --definition-id openapi --format "link" --value '$link' `
    --specification '{"name":"openapi","version":"3.0.2"}'

Alternativ 2: Importera API:er direkt från din API Management-instans

Följande är steg för att importera API:er från DIN API Management-instans till API Center med kommandot az apic import-from-apim . Det här kommandot är användbart när du vill importera flera API:er från API Management till ditt API Center, men du kan också använda det för att importera ett enda API.

När du lägger till API:er från en API Management-instans i api-centret med , az apic import-from-apimsker följande automatiskt:

  • Varje API:s versioner, definitioner och distributionsinformation kopieras till api-centret.
  • API:et tar emot ett systemgenererat API-namn i api-centret. Det behåller sitt visningsnamn (rubrik) från API Management.
  • Livscykelsteget för API:et är inställt på Design.
  • Azure API Management läggs till som en miljö.

Lägga till en hanterad identitet i API-centret

I det här scenariot använder API Center en hanterad identitet för att komma åt API:er i din API Management-instans. Beroende på dina behov konfigurerar du antingen en systemtilldelad eller en eller flera användartilldelade hanterade identiteter.

Följande exempel visar hur du konfigurerar en systemtilldelad hanterad identitet med hjälp av Azure-portalen eller Azure CLI. På hög nivå liknar konfigurationsstegen en användartilldelad hanterad identitet.

  1. Gå till API-centret i portalen.
  2. I den vänstra menyn under Säkerhet väljer du Hanterade identiteter.
  3. Välj Systemtilldelat och ange status till .
  4. Välj Spara.

Tilldela den hanterade identiteten rollen API Management Service Reader

Om du vill tillåta import av API:er tilldelar du api-centrets hanterade identitet rollen API Management Service Reader i DIN API Management-instans. Du kan använda portalen eller Azure CLI.

  1. I portalen navigerar du till din API Management-instans.
  2. Välj Åtkomstkontroll (IAM) i den vänstra menyn.
  3. Välj + Lägg till rolltilldelning.
  4. På sidan Lägg till rolltilldelning anger du följande värden:
    1. På fliken Roll – Välj API Management Service Reader.
    2. På fliken Medlemmar går du till Tilldela åtkomst till – Välj Hanterad identitet>+ Välj medlemmar.
    3. På sidan Välj hanterade identiteter – Välj den systemtilldelade hanterade identiteten för ditt API Center som du lade till i föregående avsnitt. Klicka på Välj.
    4. Välj Granska + tilldela.

Importera API:er från API Management

Använd kommandot az apic import-from-apim för att importera en eller flera API:er från DIN API Management-instans till DITT API Center.

Kommentar

  • Det här kommandot är beroende av en hanterad identitet som konfigurerats i ditt API Center som har läsbehörighet till API Management-instansen. Om du inte har lagt till eller konfigurerat en hanterad identitet kan du läsa Lägga till en hanterad identitet i API-centret tidigare i den här artikeln.

  • Om api-centret har flera hanterade identiteter söker kommandot först efter en systemtilldelad identitet. Om ingen hittas väljer den första användartilldelade identiteten i listan.

Importera alla API:er från en API Management-instans

I följande kommando ersätter du namnen på api-centret, API-centrets resursgrupp, API Management-instansen och instansens resursgrupp. Använd * för att ange alla API:er från API Management-instansen.

#! /bin/bash
az apic import-from-apim --service-name <api-center-name> --resource-group <resource-group-name> \
    --apim-name <api-management-name> --apim-resource-group <api-management-resource-group-name> \
    --apim-apis '*'  
# PowerShell syntax
az apic import-from-apim --service-name <api-center-name> --resource-group <resource-group-name> `
    --apim-name <api-management-name> --apim-resource-group <api-management-resource-group-name> `
    --apim-apis '*'  

Kommentar

Om API Management-instansen har ett stort antal API:er kan det ta lite tid att importera till API Center.

Importera ett specifikt API från en API Management-instans

Ange ett API som ska importeras med dess namn från API Management-instansen.

I följande kommando ersätter du namnen på api-centret, API-centrets resursgrupp, API Management-instansen och instansens resursgrupp. Skicka ett API-namn, till exempel petstore-api med hjälp av parametern --apim-apis .

#! /bin/bash
az apic import-from-apim --service-name <api-center-name> --resource-group <resource-group-name> \
    --apim-name <api-management-name> --apim-resource-group <api-management-resource-group-name> \
    --apim-apis 'petstore-api'        
# PowerShell syntax
az apic import-from-apim --service-name <api-center-name> --resource-group <resource-group-name> `
    --apim-name <api-management-name> --apim-resource-group <api-management-resource-group-name> `
    --apim-apis 'petstore-api'    

Kommentar

Ange ett API-namn med hjälp av API-resursnamnet i API Management-instansen, inte visningsnamnet. Exempel: petstore-api i stället Petstore APIför .

När du har importerat API:er från API Management kan du visa och hantera de importerade API:erna i api-centret.