Skip to content

An API for managing your toggles, uses Redis to store the toggle collection.

License

Notifications You must be signed in to change notification settings

qandidate-labs/qandidate-toggle-api

Repository files navigation

Toggle API

An API for managing your toggles, uses Redis to store the toggle collection.

build status

About

Read our blog post series about this repository at:

Installation

Install the dependencies with composer:

make dependencies

Configuration is determined based on environment variables. See the .env.* files. You can override the values in the file with environment values. The default configuration is mainly for local development.

The environment variable TOGGLE__ALLOWED_ORIGINS should be valid JSON. This is to allow arrays.

Running the tests

We use PHPUnit, so to run the tests simply run:

docker-compose up -d
make test

Running the app

With your favorite webserver (or with php -S 127.0.0.1:1337 -t public for local testing) point your document root to the public folder.

Endpoints

Retrieve the toggles

GET /toggles

Create or update a toggle

PUT /toggles/{name}

Example request:

{
   "conditions" : [
      {
         "name" : "operator-condition",
         "operator" : {
            "name" : "less-than",
            "value" : "1337"
         },
         "key" : "user_id"
      }
   ],
   "name" : "foo",
   "status" : "conditionally-active",
   "originalName" : "foo"
}

NOTE: PUT doesn't remove the previous toggle if you rename it. So if you want to rename foo to bar, you would have to PUT bar and DELETE foo.

Delete a toggle

DELETE /toggles/{name}

License

MIT, see LICENSE.