1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-28 00:06:53 +01:00
unleash.unleash/docs/api/client/feature-toggles-api.md
2017-06-28 10:17:48 +02:00

2.3 KiB

Fetching Feature Toggles

GET: http://unleash.host.com/api/client/features

HEADERS:

  • UNLEASH-APPNAME: appName
  • UNLEASH-INSTANCEID: instanceId

This endpoint is the one all clients should use to fetch all available feature toggles from the unleash-server. The response returns all active feature toggles and their current strategy configuration. A feature toggle will have at least one configured strategy. A strategy will have a name and parameters map.

Note: Clients should perfer the strategies property. Legacy properties (strategy & parameters) will be kept until version 2 of the format.

This endpoint should never return anything besides a valid 20X or 304-response. It will also include a Etag-header. The value of this header can be used by clients as the value of the If-None-Match-header in the request to prevent a data transfer if the clients already has the latest response locally.

Example response:

{
  "version": 1,
  "features": [
    {
      "name": "Feature.A",
      "description": "lorem ipsum",
      "enabled": false,
      "strategies": [
        {
          "name": "default",
          "parameters": {}
        }
      ],
      "strategy": "default",
      "parameters": {}
    },
    {
      "name": "Feature.B",
      "description": "lorem ipsum",
      "enabled": true,
      "strategies": [
        {
          "name": "ActiveForUserWithId",
          "parameters": {
            "userIdList": "123,221,998"
          }
        },
        {
          "name": "GradualRolloutRandom",
          "parameters": {
            "percentage": "10"
          }
        }
      ],
      "strategy": "ActiveForUserWithId",
      "parameters": {
        "userIdList": "123,221,998"
      }
    }
  ]
}

GET: http://unleash.host.com/api/client/features/:featureName

Used to fetch details about a specific featureToggle. This is mostly provded to make it easy to debug the API and should not be used by the client implementations.

Notice: You will not get a version property when fetching a specific feature toggle by name.

{
  "name": "Feature.A",
  "description": "lorem ipsum..",
  "enabled": false,
  "strategies": [
    {
      "name": "default",
      "parameters": {}
    }
  ],
  "strategy": "default",
  "parameters": {}
}