2016-09-06 21:23:56 +02:00
|
|
|
### Fetching Feature Toggles
|
|
|
|
|
2016-11-30 21:17:39 +01:00
|
|
|
`GET: http://unleash.host.com/api/features`
|
2016-09-06 21:23:56 +02:00
|
|
|
|
2016-11-09 12:41:11 +01:00
|
|
|
**HEADERS:**
|
|
|
|
|
|
|
|
* UNLEASH-APPNAME: appName
|
|
|
|
* UNLEASH-INSTANCEID: instanceId
|
|
|
|
|
2016-09-07 12:12:17 +02:00
|
|
|
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.
|
2016-09-06 21:23:56 +02:00
|
|
|
|
2016-09-07 12:12:17 +02:00
|
|
|
> _Note:_ Clients should perfer the `strategies` property.
|
|
|
|
> Legacy properties (`strategy` & `parameters`) will be kept until **version 2** of the format.
|
2016-09-06 21:23:56 +02:00
|
|
|
|
2016-09-07 12:12:17 +02:00
|
|
|
This endpoint should never return anything besides a valid *20X or 304-response*. It will also
|
2016-09-06 21:23:56 +02:00
|
|
|
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
|
2016-09-07 12:12:17 +02:00
|
|
|
has the latest response locally.
|
2016-09-06 21:23:56 +02:00
|
|
|
|
|
|
|
**Example response:**
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"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"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2016-11-30 21:17:39 +01:00
|
|
|
`GET: http://unleash.host.com/api/features/:featureName`
|
2016-09-06 21:23:56 +02:00
|
|
|
|
2016-09-07 12:12:17 +02:00
|
|
|
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.
|
2016-09-06 21:23:56 +02:00
|
|
|
|
2016-09-07 12:12:17 +02:00
|
|
|
> _Notice_: You will not get a version property when fetching a specific feature toggle by name.
|
2016-09-06 21:23:56 +02:00
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"name": "Feature.A",
|
|
|
|
"description": "lorem ipsum..",
|
|
|
|
"enabled": false,
|
|
|
|
"strategies": [
|
|
|
|
{
|
|
|
|
"name": "default",
|
|
|
|
"parameters": {}
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"strategy": "default",
|
|
|
|
"parameters": {}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Create a new Feature Toggle
|
|
|
|
|
2016-11-30 21:17:39 +01:00
|
|
|
`POST: http://unleash.host.com/api/features/`
|
2016-09-06 21:23:56 +02:00
|
|
|
|
|
|
|
**Body:**
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"name": "Feature.A",
|
|
|
|
"description": "lorem ipsum..",
|
|
|
|
"enabled": false,
|
|
|
|
"strategies": [
|
|
|
|
{
|
|
|
|
"name": "default",
|
|
|
|
"parameters": {}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2016-09-07 12:12:17 +02:00
|
|
|
Used by the admin-dashboard to create a new feature toggles. The name **must be unique**,
|
2016-09-06 21:23:56 +02:00
|
|
|
otherwise you will get a _403-response_.
|
|
|
|
|
|
|
|
Returns 200-respose if the feature toggle was created successfully.
|
|
|
|
|
2016-09-07 12:12:17 +02:00
|
|
|
### Update a Feature Toggle
|
2016-09-06 21:23:56 +02:00
|
|
|
|
2016-11-30 21:17:39 +01:00
|
|
|
`PUT: http://unleash.host.com/api/features/:toggleName`
|
2016-09-06 21:23:56 +02:00
|
|
|
|
|
|
|
**Body:**
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"name": "Feature.A",
|
|
|
|
"description": "lorem ipsum..",
|
|
|
|
"enabled": false,
|
|
|
|
"strategies": [
|
|
|
|
{
|
|
|
|
"name": "default",
|
|
|
|
"parameters": {}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2016-09-07 12:12:17 +02:00
|
|
|
Used by the admin dashboard to update a feature toggles. The name has to match an
|
|
|
|
existing features toggle.
|
2016-09-06 21:23:56 +02:00
|
|
|
|
|
|
|
Returns 200-respose if the feature toggle was updated successfully.
|
|
|
|
|
2016-09-07 12:12:17 +02:00
|
|
|
### Archive a Feature Toggle
|
|
|
|
|
2016-11-30 21:17:39 +01:00
|
|
|
`DELETE: http://unleash.host.com/api/features/:toggleName`
|
2016-09-07 12:12:17 +02:00
|
|
|
|
|
|
|
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
|
2016-11-30 21:46:40 +01:00
|
|
|
toggle suddenly reappears becuase someone else re-using the same name.
|
2016-09-07 12:12:17 +02:00
|
|
|
|
|
|
|
## Archive
|
|
|
|
|
|
|
|
### Fetch archived toggles
|
|
|
|
|
2016-11-30 21:17:39 +01:00
|
|
|
`GET http://unleash.host.com/api/archive/features`
|
2016-09-07 12:12:17 +02:00
|
|
|
|
|
|
|
Used to fetch list of archived feature toggles
|
|
|
|
|
|
|
|
**Example response:**
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"version": 1,
|
|
|
|
"features": [
|
|
|
|
{
|
|
|
|
"name": "Feature.A",
|
|
|
|
"description": "lorem ipsum",
|
|
|
|
"enabled": false,
|
|
|
|
"strategies": [
|
|
|
|
{
|
|
|
|
"name": "default",
|
|
|
|
"parameters": {}
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"strategy": "default",
|
|
|
|
"parameters": {}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
### Revive feature toggle
|
|
|
|
|
2016-11-30 21:17:39 +01:00
|
|
|
`POST http://unleash.host.com/api/archive/revive`
|
2016-09-07 12:12:17 +02:00
|
|
|
|
|
|
|
**Body:**
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"name": "Feature.A"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
Used to revive a feature toggle.
|