Productopname-API voor SaaS
De productopname-API is een gemoderniseerde API die alle bestaande api's voor indiening van alle commerciële marketplace-producten samenvoegt. Raadpleeg Productopname-API voor meer informatie over hoe u aan de slag kunt gaan.
Dit artikel bevat richtlijnen voor het gebruik van de API's die specifiek zijn voor het SaaS-aanbiedingstype.
Bestaande resourceconfiguraties ophalen
Voordat u bestaande resources bijwerkt, is het belangrijk deze eerst op te halen om ervoor te zorgen dat u de meest recente configuratie hebt. Er zijn verschillende manieren om resources op te halen via een GET-aanroep. Zie Methode 1, die hieronder wordt beschreven, om alle resources binnen een specifiek product op te halen in één API-aanroep.
Methode 1: Resourcestructuur
GET resource-tree/<product-durableID>?$version=<schema-version>
U kunt alle resourceconfiguraties binnen een specifiek product ophalen met behulp van het resourcetype resourcestructuur, samen met de duurzame id van het product. De schemaversie die u opgeeft, wordt gebruikt als de maximaal ondersteunde versie voor elk van de toepasselijke resources van het aangevraagde product.
Notitie
Als u de duurzame id van het product niet weet, kunt u de productresource eerst ophalen door in plaats daarvan de externe id van het product te gebruiken en uit te voeren GET product?externalID=<product-externalID>&$version=<product-schema-version>
. Deze aanvraag maakt gebruik van een queryreeksparameter, die wordt beschreven in methode 3. Het antwoord bevat de duurzame id van het product, die u voor toekomstige aanvragen kunt gebruiken.
Wanneer u een GET-aanroep uitvoert met behulp van de 'resource-tree', krijgt u standaard de conceptversie van uw resources terug. Door de queryparameter targetType door te geven, kunt u echter het gewenste doel opgeven om de gegevens 'preview' of 'live' op te halen. In het volgende voorbeeld retourneert de GET-aanroep de configuratie van de preview-omgeving voor alle resources onder het product '12345678-abcd-efgh-1234-12345678901'.
Voorbeeld van GET-oproep:
GET https://graph.microsoft.com/rp/product-ingestion/resource-tree/product/12345678-abcd-efgh-1234-12345678901?targetType="preview"&$version=2022-03-01-preview5
Voorbeeldantwoord:
{
"$schema": "https://product-ingestion.azureedge.net/schema/resource-tree/2022-03-01-preview2",
"root": "product/12345678-abcd-efgh-1234-12345678901",
"target": {
"targetType": "preview"
},
"resources": [
{
"$schema": "https://product-ingestion.azureedge.net/schema/product/2022-03-01-preview3",
"id": "product/12345678-abcd-efgh-1234-12345678901",
"identity": {
"externalID": "product_external_id_example"
},
"type": "softwareAsAService",
"alias": "product_example"
},
{
"$schema": "https://product-ingestion.azureedge.net/schema/commercial-marketplace-setup/2022-03-01-preview2",
"id": "commercial-marketplace-setup/12345678-abcd-efgh-1234-12345678901",
"product": "product/12345678-abcd-efgh-1234-12345678901",
"sellThroughMicrosoft": true,
"useMicrosoftLicenseManagementService": false
},
{
"$schema": "https://product-ingestion.azureedge.net/schema/plan/2022-03-01-preview2",
"id": "plan/12345678-abcd-efgh-1234-12345678901/98756328-04e9-55ae-9403-52b6c971a956
...
},
// The response would include all existing resources within this product.
{
...
}]
}
Levenscyclusstatussen van resources
Er zijn verschillende acties die u kunt uitvoeren die worden toegewezen aan de levenscyclusstatus van een resource. Niet alle resources hebben een levenscyclusstatus en niet alle levenscyclusstatussen worden ondersteund door alle resources. Als u wilt ontdekken of een resource een levenscyclusstatus heeft en welke waarden worden ondersteund, kunt u het resourceschema controleren op het bestaan van de eigenschap 'lifecycleState'. Hieronder volgen enkele voorbeelden voor het instellen van de status van de resourcelevenscyclus voor het type SaaS-aanbieding.
Afgeschaft
Met afschaffing wordt de resource verwijderd uit de commerciële marketplace. Als u deze wilt afschappen, stelt u de eigenschap 'lifecycleState' in op 'afgeschaft' voor de resources die dit ondersteunen. Verschillende niveaus van afschaffing worden ondersteund, afhankelijk van het producttype. In het geval van SaaS-producten kunt u bijvoorbeeld plannen of het hele product afschappen. Bij het afschaffen van plannen moet de 'lifecycleState' worden gewijzigd en moeten de wijzigingen vervolgens worden gepubliceerd als preview en live voordat de afschaffing van kracht wordt. Dit verschilt van een afschaffing op productniveau, waarbij de instelling hiermee automatisch de afschaffing in de live-omgeving start. Als u een afgeschafte resource later wilt herstellen, raadpleegt u de levenscyclusstatus 'generallyAvailable'.
Voorbeeldaanvraag voor afschaffing van plannen:
In het volgende voorbeeld is een plan binnen een SaaS-product ingesteld op afschaffing. Als u deze wijziging wilt toepassen, kunt u later publiceren met behulp van de indieningsresource.
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2022-03-01-preview2
{
"$schema": "https://product-ingestion.azureedge.net/schema/configure/2022-03-01-preview2"
"resources": [
{
"$schema": "https://product-ingestion.azureedge.net/schema/plan/2022-03-01-preview2",
"id": "plan/9f8af57f-ab07-461b-8404-50e10e5e80fb/7e70b11f-809e-4c45-ae2f-1fb3ceaca33b",
"product": "product/9f8af57f-ab07-461b-8404-50e10e5e80fb",
"identity": { "externalID": "basic" },
"alias": "basic plan"
"lifecycleState": "deprecated"
}
]
}
Voorbeeldaanvraag voor afschaffing van product:
In het volgende voorbeeld is de live-verzending van het product ingesteld op afschaffing. Zodra deze wijziging is toegepast, wordt deze automatisch gepubliceerd om live van kracht te worden.
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2022-03-01-preview2
{
"$schema": "https://product-ingestion.azureedge.net/schema/configure/2022-03-01-preview2"
"resources": [
{
"$schema": "https://product-ingestion.azureedge.net/schema/submission/2022-03-01-preview2 ",
"id": "submission/9f8af57f-ab07-461b-8404-50e10e5e80fb/1152921515689848683",
"product": "product/9f8af57f-ab07-461b-8404-50e10e5e80fb",
"target": {
"targetType": "live"
},
"lifecycleState": "deprecated"
}
]
}
Algemeen beschikbaar
'generallyAvailable' is de standaardlevenscyclusstatus voor alle resources. Zodra een resource is afgeschaft, kunt u deze herstellen door de eigenschap 'lifecycleState' weer te wijzigen in 'generallyAvailable'. Als u een afgeschaft product wilt herstellen, moet u het product opnieuw publiceren om een voorbeeld te bekijken en vervolgens live te maken.
Voorbeeldaanvraag voor herstel plannen:
In het volgende voorbeeld is een plan bedoeld om te worden hersteld. Als u deze wijziging wilt toepassen, moet u later helemaal live publiceren met behulp van de indieningsresource.
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2022-03-01-preview2
{
"$schema": "https://product-ingestion.azureedge.net/schema/configure/2022-03-01-preview2"
"resources": [
{
"$schema": "https://product-ingestion.azureedge.net/schema/plan/2022-03-01-preview2",
"id": "plan/9f8af57f-ab07-461b-8404-50e10e5e80fb/7e70b11f-809e-4c45-ae2f-1fb3ceaca33b",
"product": "product/9f8af57f-ab07-461b-8404-50e10e5e80fb",
"identity": { "externalID": "basic" },
"alias": "basic plan"
"lifecycleState": "generallyAvailable"
}
]
}