1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-28 00:06:53 +01:00
unleash.unleash/docs/api/admin/feature-toggles-api.md
2020-02-20 08:34:20 +01:00

3.6 KiB

id title
features /api/admin/features

Fetching Feature Toggles

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

This endpoint is the one all admin ui 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.

Example response:

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

GET: http://unleash.host.com/api/admin/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.

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

Create a new Feature Toggle

POST: http://unleash.host.com/api/admin/features/

Body:

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

Used by the admin-dashboard to create a new feature toggles. The name must be unique, otherwise you will get a 403-response.

Returns 200-respose if the feature toggle was created successfully.

Update a Feature Toggle

PUT: http://unleash.host.com/api/admin/features/:toggleName

Body:

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

Used by the admin dashboard to update a feature toggles. The name has to match an existing features toggle.

Returns 200-respose if the feature toggle was updated successfully.

Archive a Feature Toggle

DELETE: http://unleash.host.com/api/admin/features/:toggleName

Used to archive a feature toggle. A feature toggle can never be totally be deleted, but can be archived. This is a design decision to make sure that a old feature toggle suddenly reappears becuase someone else re-using the same name.

Archive

Fetch archived toggles

GET http://unleash.host.com/api/admin/archive/features

Used to fetch list of archived feature toggles

Example response:

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

Revive feature toggle

POST http://unleash.host.com/api/admin/archive/revive

Body:

{
  "name": "Feature.A"
}

Used to revive a feature toggle.