Förbättrade funktionsflaggor

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

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, eller label=%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, eller label=%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.