Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Förbättrade funktionsflaggor finns inte tillgängliga i denna API-version.
En förbättrad funktionsflagga är en resurs som identifieras genom den unika kombinationen av name + label.
label är valfritt. För att explicit referera till en funktionsflagga utan etikett, använd \0 (URL kodad som %00). För listoperationer har utelämnande label matchningar flaggor med valfri etikett. Se information för varje åtgärd.
Important
Förbättrade funktionsflaggsändpunkter finns endast tillgängliga i API-versionen 2026-05-01-preview .
För historiska representationer, se Förbättrade funktionsflaggrevisioner. För att lista etiketter kopplade till förbättrade funktionsflaggor, se Etiketter.
Operations
- Hämta
- Visa en lista över flera
- Ställ in
- Delete
Förutsättningar
- Alla HTTP-begäranden måste autentiseras. Se avsnittet autentisering.
- Alla HTTP-begäranden måste ange explicit
api-version. Se avsnittet versionshantering.
Syntax
Funktionsflagga
{
"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]
}
Variant
{
"name": [string],
"value": [string, optional],
"content_type": [string, optional],
"status_override": [string, enum("None", "Enabled", "Disabled"), optional]
}
Tilldelning
{
"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]
}
Få funktionsflagga
Krävs: {name}, {api-version}
Valfritt: label (Om det utelämnas innebär det en funktionsflagga utan etikett.)
Valfritt: tags (Om det inte anges innebär det några taggar.)
Och namelabel måste matcha exakt innan tags de appliceras för ytterligare filtrering. Fler alternativ finns i avsnittet "Filtrering" senare i den här artikeln.
GET /ff/{name}?label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}
Svaren:
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"
}
Om funktionsflaggan inte finns returneras följande svar:
HTTP/1.1 404 Not Found
Hämta (villkorligt)
För att förbättra klientcachelagring använder If-Match du eller If-None-Match begär rubriker. Argumentet etag är en del av feature-flaggrepresentationen. Om båda headers utelämnas är operationen ovillkorlig.
Följande begäran hämtar funktionsflaggan endast om den aktuella representationen inte matchar den specificerade etag:
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}"
Svaren:
HTTP/1.1 304 Not Modified
eller
HTTP/1.1 200 OK
Lista funktionsflaggor
Valfritt: name (Om det inte specificeras, innebär det att någon funktionsflagga är namngiven.)
Valfritt: label (Om det inte anges innebär det någon etikett.)
Valfritt: tags (Om det inte anges innebär det några taggar.)
GET /ff?name=Test*&label=*&tags=tag1=value1&tags=tag2=value2&api-version={api-version} HTTP/1.1
Svar:
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}"
}
Fler alternativ finns i avsnittet "Filtrering" senare i den här artikeln.
Lista funktionsflaggor (villkorat)
För att förbättra klientcachelagring använder If-Match du eller If-None-Match begär rubriker. Argumentet etag är en del av listsvarets kropp och rubrik. Om båda headers utelämnas är operationen ovillkorlig.
Följande begäran hämtar funktionsflaggor endast om den aktuella representationen överensstämmer med den specificerade etag:
GET /ff?name={name}&label={label}&api-version={api-version} HTTP/1.1
If-Match: "{etag}"
Svaren:
HTTP/1.1 412 Precondition Failed
eller
HTTP/1.1 200 OK
Följande förfrågan får funktionsflaggorna endast om den aktuella representationen inte matchar den angivna etag:
GET /ff?name={name}&label={label}&api-version={api-version} HTTP/1.1
If-None-Match: "{etag}"
Svaren:
HTTP/1.1 304 Not Modified
eller
HTTP/1.1 200 OK
Paginering
Resultatet sidnumreras om antalet returnerade objekt överskrider svarsgränsen. Följ den valfria Link svarsrubriken och använd rel="next" för navigering. Alternativt tillhandahåller innehållet en nästa länk i form av @nextLink egenskapen. Den länkade URI:n api-version innehåller argumentet.
GET /ff?api-version={api-version} HTTP/1.1
Svar:
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}"
}
Filtrering
En kombination av name, labeloch tags filtrering stöds. Använd parametrarna för valfria name, labeloch tags frågesträngar. Flera taggfilter kan anges som frågesträngsparametrar i tagName=tagValue formatet. Taggfilter måste vara en exakt matchning.
GET /ff?name={name}&label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}
Filter som stöds
| Namnfilter | Effect |
|---|---|
name utelämnas eller name=* |
Matchar vilken flagga som helst |
name=abc |
Matchar en featureflagga som heter abc |
name=abc* |
Matcher har flaggnamn som börjar på abc |
name=abc,xyz |
Matcherna har flaggnamn abc eller xyz (begränsat till 5 CSV) |
| Etikettfilter | Effect |
|---|---|
label utelämnas eller label=* |
Matchar valfri etikett |
label=%00 |
Matcherna har flaggor utan etikett |
label=prod |
Matchar etikettprod |
label=prod* |
Matchar etiketter som börjar med prod |
label=prod,test |
Matchar etiketter prod eller test (begränsat till 5 CSV) |
| Filter för taggar | Effect |
|---|---|
tags utelämnas eller tags= |
Matchar valfri tagg |
tags=group=app1 |
Matcher har flaggor som har en tagg med värde groupapp1 |
tags=group=app1&tags=env=prod |
Matcher har flaggor som har en tagg med värde groupapp1 och en tagg med värde envprod (begränsat till 5 taggfilter) |
tags=tag1=%00 |
Matcher har flaggor som har en tagg med värde tag1null |
tags=tag1= |
Matcher har flaggor som har en tagg med ett tomt tag1 värde |
Reserverade tecken
*, \, ,
Om ett reserverat tecken är en del av värdet måste det kringgås med hjälp \{Reserved Character}av . Icke-reserverade tecken kan också undantagas.
Filterverifiering
Om filterverifieringen misslyckas är svaret HTTP 400 med felinformation:
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}Feature flag-namnet börjar med abc och inkluderar alla etiketter
GET /ff?name=abc*&label=*&api-version={api-version}Funktionsflaggans namn börjar med abc och etiketten är lika med v1 eller v2
GET /ff?name=abc*&label=v1,v2&api-version={api-version}
Begär specifika fält
Använd den valfria frågesträngsparametern $select och ange en kommaavgränsad lista över begärda fält. Om parametern $select utelämnas innehåller svaret standarduppsättningen. Stödda fält är , , , , , , variants, allocationlast_modifiedtagstelemetryoch .etagconditionsdescriptionlabelenabledname
GET /ff?$select=name,enabled,label&api-version={api-version} HTTP/1.1
Parametern $select stöds av GET förfrågningar om en enda funktionsflagga och funktionsflaggsamlingar.
Tidsbaserad åtkomst
Hämta en representation av resultatet som det var vid en tidigare tidpunkt. Mer information finns i avsnitt 2.1.1. Sidnumrering stöds fortfarande enligt definitionen tidigare i den här artikeln.
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
Ställ in funktionsflagga
- Krävs:
{name},{api-version} - Valfritt:
label(Om det inte specificeras, ellerlabel=%00, innebär det en funktionsflagga utan etikett.)
Egenskapen enabled krävs i begäran. , descriptionconditions, variants, allocation, , telemetryoch tags egenskaperna är valfria. Inkludera nameinte , label, etag, eller last_modified i önsketexten.
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"
}
}
Svaren:
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"
}
Sätt funktionsflaggan (villkorat)
För att förhindra tävlingsvillkor använder If-Match du eller If-None-Match begär rubriker. Argumentet etag är en del av feature-flaggrepresentationen. Om båda headers utelämnas är operationen ovillkorlig.
Följande begäran sätter funktionsflaggan endast om den aktuella representationen överensstämmer med den specificerade etag:
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}"
Följande begäran sätter funktionsflaggan endast om den aktuella representationen inte matchar den angivna etag:
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}"
Följande begäran sätter funktionsflaggan endast om en representation redan existerar:
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: "*"
Följande begäran sätter funktionsflaggan endast om en representation inte redan existerar:
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: "*"
Svaren
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
...
eller
HTTP/1.1 412 Precondition Failed
Delete
- Krävs:
{name},{api-version} - Valfritt:
label(Om det inte specificeras, ellerlabel=%00, innebär det en funktionsflagga utan etikett.)
DELETE /ff/{name}?label={label}&api-version={api-version} HTTP/1.1
Svar: Returnera den borttagna funktionsflaggan, eller ingen om funktionsflaggan inte fanns.
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
...
eller
HTTP/1.1 204 No Content
Ta bort funktionsflaggan (villkorat)
Detta liknar avsnittet "Sätt funktionsflagga (villkorligt)" tidigare i denna artikel. Borttagningsoperationen stöder If-Match begäransökandet.
För information om förfrågnings- och svarshuvuden som delas av App Configuration dataplansoperationer, se Gemensamma huvuden.