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:
- Kör az apic api register för att registrera ett nytt API i api-centret.
- Kör az apic api definition import-specification för att importera API-definitionen till ett befintligt API.
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.
Dricks
Du kan också konfigurera automatisk synkronisering av APIS från API Management till ditt API Center. Mer information finns i Länka en API Management-instans för att synkronisera API:er till ditt API Center.
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:
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Kommentar
az apic
kommandon kräver Azure CLI-tilläggetapic-extension
. Om du inte har använtaz apic
kommandon kan tillägget installeras dynamiskt när du kör ditt förstaaz 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-extension
i .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"
# Formatted for PowerShell
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)
# Formatted for PowerShell
$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"}'
# Formatted for PowerShell
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-apim
sker 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.
I följande exempel visas hur du konfigurerar en systemtilldelad hanterad identitet med hjälp av Azure Portal eller Azure CLI. På hög nivå liknar konfigurationsstegen en användartilldelad hanterad identitet.
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.
- I portalen navigerar du till din API Management-instans.
- Välj Åtkomstkontroll (IAM) i den vänstra menyn.
- Välj + Lägg till rolltilldelning.
- På sidan Lägg till rolltilldelning anger du följande värden:
- På fliken Roll – Välj API Management Service Reader.
- På fliken Medlemmar går du till Tilldela åtkomst till – Välj Hanterad identitet>+ Välj medlemmar.
- 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.
- 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 '*'
# Formatted for PowerShell
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'
# Formatted for PowerShell
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 API
för .
När du har importerat API:er från API Management kan du visa och hantera de importerade API:erna i api-centret.