Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erweiterte Feature-Flags sind in dieser API-Version nicht verfügbar.
Ein Enhanced Feature-Flag ist eine Ressource, die durch die eindeutige Kombination von identifiziert wird name + label.
label ist optional. Um explizit auf ein Feature-Flag ohne Label zu referenzieren, verwenden \0 Sie (URL kodiert als %00). Für Listenoperationen enthalten das Weglassen von label Übereinstimmungen Flags mit beliebigen Beschriftungen. Mehr dazu erfahren Sie in den Informationen zum jeweiligen Vorgang.
Important
Erweiterte Feature-Flag-Endpunkte sind nur in der 2026-05-01-preview API-Version verfügbar.
Für historische Darstellungen siehe Erweiterte Feature-Flag-Überarbeitungen. Um Beschriftungen aufzulisten, die mit verbesserten Feature-Flags verbunden sind, siehe Labels.
Operations
- Get
- Auflisten mehrerer Werte
- Festlegen
- Löschen
Voraussetzungen
- Alle HTTP-Anforderungen müssen authentifiziert werden. Informationen dazu erhalten Sie im Abschnitt Authentifizierung.
- Alle HTTP-Anforderungen müssen explizit die
api-versionangeben. Informationen dazu erhalten Sie im Abschnitt Versionsverwaltung.
Syntax
Feature-Flag
{
"etag": [string, optional, read-only],
"name": [string, read-only],
"enabled": [boolean],
"label": [string, optional, read-only],
"description": [string, optional],
"conditions": [Conditions, optional],
"variants": [array<Variant>, optional],
"allocation": [Allocation, optional],
"telemetry": [Telemetry, optional],
"tags": [object<string, string>, optional],
"last_modified": [datetime ISO 8601, optional, read-only]
}
Conditions
{
"requirement_type": [string, enum("Any", "All"), optional],
"filters": [array<FeatureFilter>, optional]
}
FeatureFilter
{
"name": [string],
"parameters": [object<string, string>, optional]
}
Variante
{
"name": [string],
"value": [string, optional],
"content_type": [string, optional],
"status_override": [string, enum("None", "Enabled", "Disabled"), optional]
}
Zuteilung
{
"default_when_disabled": [string, optional],
"default_when_enabled": [string, optional],
"percentile": [array<PercentileAllocation>, optional],
"user": [array<UserAllocation>, optional],
"group": [array<GroupAllocation>, optional],
"seed": [string, optional]
}
PercentileAllocation
{
"variant": [string],
"from": [number, range(0, 100)],
"to": [number, range(0, 100)]
}
UserAllocation
{
"variant": [string],
"users": [array<string>]
}
GroupAllocation
{
"variant": [string],
"groups": [array<string>]
}
Telemetry
{
"enabled": [boolean],
"metadata": [object<string, string>, optional]
}
Feature-Flag erhalten
Erforderlich: {name}, {api-version}
Optional: label (Wenn weggelassen, impliziert dies ein Feature-Flag ohne Beschriftung.)
Optional: tags (Falls nicht angegeben, impliziert es Tags.)
Die name und label müssen genau übereinstimmen, bevor tags sie für zusätzliche Filterung angewendet werden. Weitere Optionen finden Sie im Abschnitt "Filtern" weiter unten in diesem Artikel.
GET /ff/{name}?label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}
Antworten:
HTTP/1.1 200 OK
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ff"; charset=utf-8
Last-Modified: Fri, 01 May 2026 16:52:32 GMT
ETag: "7XpB48ET4VAlB9068ft6fKMyA3m"
Sync-Token: zAJw6V16=NjotMSM3ODk3NjM=;sn=789763
{
"etag": "7XpB48ET4VAlB9068ft6fKMyA3m",
"name": "{name}",
"enabled": true,
"label": "{label}",
"description": "{description}",
"tags": {
"t1": "value1"
},
"last_modified": "2026-05-01T16:52:32Z"
}
Wenn das Feature-Flag nicht existiert, wird folgende Antwort zurückgegeben:
HTTP/1.1 404 Not Found
Abrufen (bedingt)
Verwenden Sie If-Match- oder If-None-Match-Anforderungsheader, um das Zwischenspeichern auf dem Client zu verbessern. Das Argument etag ist Teil der Feature-Flag-Darstellung. Wenn beide Header weggelassen werden, ist die Operation bedingungslos.
Die folgende Anfrage ruft das Feature-Flag nur ab, wenn die aktuelle Darstellung nicht mit der angegebenen etagübereinstimmt:
GET /ff/{name}?label={label}&api-version={api-version} HTTP/1.1
Accept: application/json; profile="https://azconfig.io/mime-profiles/ff"
If-None-Match: "{etag}"
Antworten:
HTTP/1.1 304 Not Modified
oder
HTTP/1.1 200 OK
Listen der Merkmale-Flags
Optional: name (Falls nicht angegeben, impliziert es einen beliebigen Feature-Flag-Namen.)
Optional: label (ohne Angabe ist eine beliebige Bezeichnung gemeint).
Optional: tags (Falls nicht angegeben, impliziert es Tags.)
GET /ff?name=Test*&label=*&tags=tag1=value1&tags=tag2=value2&api-version={api-version} HTTP/1.1
Antwort:
HTTP/1.1 200 OK
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ffset"; charset=utf-8
ETag: "1PlB48ET4VAlB9068ft6fKMyA3m"
Sync-Token: zAJw6V16=NjotMSM3ODk3NjM=;sn=789763
{
"items": [
{
"etag": "7XpB48ET4VAlB9068ft6fKMyA3m",
"name": "{name}",
"enabled": true,
"label": "{label}",
"tags": {
"t1": "value1"
},
"last_modified": "2026-05-01T16:52:32Z"
}
],
"etag": "1PlB48ET4VAlB9068ft6fKMyA3m",
"@nextLink": "{relative uri}"
}
Weitere Optionen finden Sie im Abschnitt "Filtern" weiter unten in diesem Artikel.
Feature-Flags auflisten (bedingt)
Verwenden Sie If-Match- oder If-None-Match-Anforderungsheader, um das Zwischenspeichern auf dem Client zu verbessern. Das Argument etag ist Teil des Listen-Antwortkörpers und des Headers. Wenn beide Header weggelassen werden, ist die Operation bedingungslos.
Die folgende Anfrage ruft Feature-Flags nur ab, wenn die aktuelle Darstellung der angegebenen etagentspricht:
GET /ff?name={name}&label={label}&api-version={api-version} HTTP/1.1
If-Match: "{etag}"
Antworten:
HTTP/1.1 412 Precondition Failed
oder
HTTP/1.1 200 OK
Die folgende Anfrage erhält die Feature-Flags nur, wenn die aktuelle Darstellung nicht mit den angegebenen etagMerkmalen übereinstimmt:
GET /ff?name={name}&label={label}&api-version={api-version} HTTP/1.1
If-None-Match: "{etag}"
Antworten:
HTTP/1.1 304 Not Modified
oder
HTTP/1.1 200 OK
Paginierung
Das Ergebnis ist paginiert, wenn die Anzahl der zurückgegebenen Elemente das Antwortlimit überschreitet. Folgen Sie dem optionalen Link Antwort-Header und verwenden rel="next" Sie es zur Navigation. Alternativ bietet der Inhalt einen nächsten Link in Form der @nextLink Eigenschaft. Der verknüpfte URI enthält das api-version-Argument.
GET /ff?api-version={api-version} HTTP/1.1
Antwort:
HTTP/1.1 200 OK
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ffset"; charset=utf-8
Link: <{relative uri}>; rel="next"
{
"items": [
...
],
"@nextLink": "{relative uri}"
}
Filterung
Es wird eine Kombination aus name, labelund tags Filtern unterstützt. Verwenden Sie die optionalen name, labelund tags Abfragezeichenfolgenparameter. Mehrere Tagfilter können als Abfragezeichenfolgenparameter im tagName=tagValue Format bereitgestellt werden. Tagfilter müssen eine genaue Übereinstimmung sein.
GET /ff?name={name}&label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}
Unterstützte Filter
| Namensfilter | Effect |
|---|---|
name wird weggelassen oder lautet name=* |
Entspricht jedem Namen der Feature-Flagge |
name=abc |
Entspricht einer Feature-Flagge namens abc |
name=abc* |
Matches haben Flaggennamen, die mit abc beginnen |
name=abc,xyz |
Die Matches enthalten Flaggennamen abc oder xyz (begrenzt auf 5 CSV) |
| Etikettenfilter | Effect |
|---|---|
label wird weggelassen oder lautet label=* |
Übereinstimmung mit einer beliebigen Bezeichnung |
label=%00 |
Die Spiele zeigen Flaggen ohne Etikett |
label=prod |
Übereinstimmung mit Bezeichnung prod |
label=prod* |
Übereinstimmung mit Bezeichnungen, die mit prod beginnen |
label=prod,test |
Übereinstimmung mit den Bezeichnungen prod oder test (auf fünf CSVs begrenzt) |
| Kategorienfilter | Effect |
|---|---|
tags wird weggelassen oder lautet tags= |
Entspricht einem beliebigen Tag |
tags=group=app1 |
Matches enthalten Flags, die einen Tag mit Wert haben groupapp1 |
tags=group=app1&tags=env=prod |
Matches enthalten Flags, die einen Tag mit Wert app1 und group einen Tag mit Wert prod (envbegrenzt auf 5 Tag-Filter) enthalten. |
tags=tag1=%00 |
Matches enthalten Flags, die einen Tag mit Wert haben tag1null |
tags=tag1= |
Matches enthalten Flags, die einen Tag mit einem leeren Wert haben tag1 |
Reservierte Zeichen
*, \, ,
Wenn ein Wert ein reserviertes Zeichen enthält, muss dieses mit einem Escapezeichen versehen werden: \{Reserved Character}. Nicht reservierten Zeichen können ebenfalls mit Escapezeichen versehen werden.
Filterüberprüfung
Wenn die Filterüberprüfung fehlschlägt, lautet die Antwort HTTP 400 mit Fehlerdetails:
HTTP/1.1 400 Bad Request
Content-Type: application/problem+json; charset=utf-8
{
"type": "https://azconfig.io/errors/invalid-argument",
"title": "Invalid request parameter '{filter}'",
"name": "{filter}",
"detail": "{filter}(2): Invalid character",
"status": 400
}
Examples
All
GET /ff?api-version={api-version}Der Name der Feature-Flagge beginnt mit abc und enthält alle Bezeichnungen
GET /ff?name=abc*&label=*&api-version={api-version}Der Name des Feature-Flags beginnt mit abc und das Label entspricht v1 oder v2
GET /ff?name=abc*&label=v1,v2&api-version={api-version}
Anfordern bestimmter Felder
Verwenden Sie den optionalen Abfragezeichenfolgenparameter $select, und geben Sie eine durch Trennzeichen getrennte Liste der angeforderten Felder an. Wenn der Parameter $select ausgelassen wird, enthält die Antwort die Standardgruppe von Feldern. Unterstützte Felder sind , , , , , conditionsvariants, telemetrytagsallocationlast_modifiedund .etagdescriptionlabelenabledname
GET /ff?$select=name,enabled,label&api-version={api-version} HTTP/1.1
Der Parameter $select wird durch GET Anfragen nach einem einzelnen Feature-Flag und Feature-Flag-Sammlungen unterstützt.
Zeitbasierter Zugriff
Rufen Sie eine Darstellung des Ergebnisses ab, so wie es zu einem bestimmten Zeitpunkt in der Vergangenheit war. Weitere Informationen finden Sie im Abschnitt 2.1.1. Die Paginierung wird weiterhin wie oben in diesem Artikel definiert unterstützt.
GET /ff/{name}?label={label}&api-version={api-version} HTTP/1.1
Accept-Datetime: Sat, 01 Aug 2026 02:10:00 GMT
GET /ff?api-version={api-version} HTTP/1.1
Accept-Datetime: Sat, 01 Aug 2026 02:10:00 GMT
Set-Feature-Flag
- Erforderlich:
{name},{api-version} - Optional:
label(Wenn nicht angegeben, oderlabel=%00, impliziert dies ein Feature-Flag ohne Label.)
Die Eigenschaft enabled ist im Antragskörper erforderlich. Die descriptionEigenschaften , conditions, variants, , allocation, telemetryund tags sind optional. Fügen Sie nicht , label, , etagoder last_modified in den Eingabetext ein.name
PUT /ff/{name}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ff"
{
"enabled": true,
"description": "{description}",
"conditions": {
"requirement_type": "All",
"filters": [
{
"name": "Microsoft.Targeting",
"parameters": {
"Audience": "{\"Users\":[\"User1\",\"User2\"],\"Groups\":[{\"Name\":\"Ring0\",\"RolloutPercentage\":100}],\"DefaultRolloutPercentage\":20,\"Exclusion\":{\"Users\":[\"ExcludedUser\"],\"Groups\":[\"Ring1\"]}}"
}
}
]
},
"variants": [
{
"name": "On",
"value": "true",
"content_type": "application/json",
"status_override": "None"
},
{
"name": "Off",
"value": "false",
"content_type": "application/json",
"status_override": "Disabled"
}
],
"allocation": {
"default_when_disabled": "Off",
"default_when_enabled": "On",
"percentile": [
{
"variant": "On",
"from": 0,
"to": 80
},
{
"variant": "Off",
"from": 80,
"to": 100
}
],
"seed": "{name}"
},
"telemetry": {
"enabled": true,
"metadata": {
"Tags.Environment": "production"
}
},
"tags": {
"t1": "value1"
}
}
Antworten:
HTTP/1.1 200 OK
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ff"; charset=utf-8
Last-Modified: Fri, 01 May 2026 16:52:32 GMT
ETag: "7XpB48ET4VAlB9068ft6fKMyA3m"
Sync-Token: zAJw6V16=NjotMSM3ODk3NjM=;sn=789763
{
"etag": "7XpB48ET4VAlB9068ft6fKMyA3m",
"name": "{name}",
"enabled": true,
"label": "{label}",
"description": "{description}",
"conditions": {
"requirement_type": "All",
"filters": [
{
"name": "Microsoft.Targeting",
"parameters": {
"Audience": "{\"Users\":[\"User1\",\"User2\"],\"Groups\":[{\"Name\":\"Ring0\",\"RolloutPercentage\":100}],\"DefaultRolloutPercentage\":20,\"Exclusion\":{\"Users\":[\"ExcludedUser\"],\"Groups\":[\"Ring1\"]}}"
}
}
]
},
"variants": [
{
"name": "On",
"value": "true",
"content_type": "application/json",
"status_override": "None"
},
{
"name": "Off",
"value": "false",
"content_type": "application/json",
"status_override": "Disabled"
}
],
"allocation": {
"default_when_disabled": "Off",
"default_when_enabled": "On",
"percentile": [
{
"variant": "On",
"from": 0,
"to": 80
},
{
"variant": "Off",
"from": 80,
"to": 100
}
],
"seed": "{name}"
},
"telemetry": {
"enabled": true,
"metadata": {
"Tags.Environment": "production"
}
},
"tags": {
"t1": "value1"
},
"last_modified": "2026-05-01T16:52:32Z"
}
Set-Feature-Flag (bedingt)
Um Racebedingungen zu verhindern, verwenden Sie Anforderungsheader vom Typ If-Match oder If-None-Match. Das Argument etag ist Teil der Feature-Flag-Darstellung. Wenn beide Header weggelassen werden, ist die Operation bedingungslos.
Die folgende Anfrage setzt das Feature-Flag nur, wenn die aktuelle Darstellung der angegebenen etagentspricht:
PUT /ff/{name}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ff"
If-Match: "{etag}"
Die folgende Anfrage setzt das Feature-Flag nur, wenn die aktuelle Darstellung nicht mit der angegebenen etagVariante übereinstimmt:
PUT /ff/{name}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ff"
If-None-Match: "{etag}"
Die folgende Anfrage setzt die Feature-Flagge nur, wenn bereits eine Darstellung existiert:
PUT /ff/{name}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ff"
If-Match: "*"
Die folgende Anfrage setzt die Feature-Flagge nur, wenn eine Darstellung noch nicht existiert:
PUT /ff/{name}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ff"
If-None-Match: "*"
Antworten
HTTP/1.1 200 OK
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ff"; charset=utf-8
Last-Modified: Fri, 01 May 2026 16:52:32 GMT
ETag: "7XpB48ET4VAlB9068ft6fKMyA3m"
Sync-Token: zAJw6V16=NjotMSM3ODk3NjM=;sn=789763
...
oder
HTTP/1.1 412 Precondition Failed
Löschen
- Erforderlich:
{name},{api-version} - Optional:
label(Wenn nicht angegeben, oderlabel=%00, impliziert dies ein Feature-Flag ohne Label.)
DELETE /ff/{name}?label={label}&api-version={api-version} HTTP/1.1
Antwort: Geben Sie das gelöschte Feature-Flag zurück oder keines, wenn das Feature-Flag nicht existierte.
HTTP/1.1 200 OK
Content-Type: application/json; profile="https://azconfig.io/mime-profiles/ff"; charset=utf-8
Last-Modified: Fri, 01 May 2026 16:52:32 GMT
ETag: "7XpB48ET4VAlB9068ft6fKMyA3m"
Sync-Token: zAJw6V16=NjotMSM3ODk3NjM=;sn=789763
...
oder
HTTP/1.1 204 No Content
Feature-Flag löschen (bedingt)
Dies ähnelt dem Abschnitt "Set feature flag (conditionally)" zuvor in diesem Artikel. Die Löschoperation unterstützt den If-Match Anfrage-Header.
Informationen zu Anfrage- und Antwortheadern, die von App Configuration Data-Plane-Operationen geteilt werden, finden Sie unter Common Headers.