Skip to content

checkr/jsflagr

Repository files navigation

jsflagr

Jsflagr - JavaScript client for jsflagr Flagr is a feature flagging, A/B testing and dynamic configuration microservice. The base path for all the APIs is "/api/v1". This SDK is automatically generated by the Swagger Codegen project:

  • API version: 1.1.10
  • Package version: 1.1.10
  • Build package: io.swagger.codegen.languages.JavascriptClientCodegen

Installation

npm

To publish the library as a npm, please follow the procedure in "Publishing npm packages".

Then install it via:

npm install jsflagr --save
Local development

To use the library locally without publishing to a remote npm registry, first install the dependencies by changing into the directory containing package.json (and this README). Let's call this JAVASCRIPT_CLIENT_DIR. Then run:

npm install

Next, link it globally in npm with the following, also from JAVASCRIPT_CLIENT_DIR:

npm link

Finally, switch to the directory you want to use your jsflagr from, and run:

npm link /path/to/<JAVASCRIPT_CLIENT_DIR>

You should now be able to require('jsflagr') in javascript files from the directory you ran the last command above from.

git

If the library is hosted at a git repository, e.g. https://github.com/GIT_USER_ID/GIT_REPO_ID then install it via:

    npm install GIT_USER_ID/GIT_REPO_ID --save

For browser

The library also works in the browser environment via npm and browserify. After following the above steps with Node.js and installing browserify with npm install -g browserify, perform the following (assuming main.js is your entry file, that's to say your javascript file where you actually use this library):

browserify main.js > bundle.js

Then include bundle.js in the HTML pages.

Webpack Configuration

Using Webpack you may encounter the following error: "Module not found: Error: Cannot resolve module", most certainly you should disable AMD loader. Add/merge the following section to your webpack config:

module: {
  rules: [
    {
      parser: {
        amd: false
      }
    }
  ]
}

Getting Started

Please follow the installation instruction and execute the following JS code:

var Jsflagr = require('jsflagr');

var api = new Jsflagr.ConstraintApi()

var flagID = 789; // {Number} numeric ID of the flag

var segmentID = 789; // {Number} numeric ID of the segment

var body = new Jsflagr.CreateConstraintRequest(); // {CreateConstraintRequest} create a constraint


var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
api.createConstraint(flagID, segmentID, body, callback);

Documentation for API Endpoints

All URIs are relative to http://localhost/api/v1

Class Method HTTP request Description
Jsflagr.ConstraintApi createConstraint POST /flags/{flagID}/segments/{segmentID}/constraints
Jsflagr.ConstraintApi deleteConstraint DELETE /flags/{flagID}/segments/{segmentID}/constraints/{constraintID}
Jsflagr.ConstraintApi findConstraints GET /flags/{flagID}/segments/{segmentID}/constraints
Jsflagr.ConstraintApi putConstraint PUT /flags/{flagID}/segments/{segmentID}/constraints/{constraintID}
Jsflagr.DistributionApi findDistributions GET /flags/{flagID}/segments/{segmentID}/distributions
Jsflagr.DistributionApi putDistributions PUT /flags/{flagID}/segments/{segmentID}/distributions
Jsflagr.EvaluationApi postEvaluation POST /evaluation
Jsflagr.EvaluationApi postEvaluationBatch POST /evaluation/batch
Jsflagr.ExportApi getExportEvalCacheJSON GET /export/eval_cache/json
Jsflagr.ExportApi getExportSqlite GET /export/sqlite
Jsflagr.FlagApi createFlag POST /flags
Jsflagr.FlagApi deleteFlag DELETE /flags/{flagID}
Jsflagr.FlagApi findFlags GET /flags
Jsflagr.FlagApi getFlag GET /flags/{flagID}
Jsflagr.FlagApi getFlagEntityTypes GET /flags/entity_types
Jsflagr.FlagApi getFlagSnapshots GET /flags/{flagID}/snapshots
Jsflagr.FlagApi putFlag PUT /flags/{flagID}
Jsflagr.FlagApi setFlagEnabled PUT /flags/{flagID}/enabled
Jsflagr.HealthApi getHealth GET /health
Jsflagr.SegmentApi createSegment POST /flags/{flagID}/segments
Jsflagr.SegmentApi deleteSegment DELETE /flags/{flagID}/segments/{segmentID}
Jsflagr.SegmentApi findSegments GET /flags/{flagID}/segments
Jsflagr.SegmentApi putSegment PUT /flags/{flagID}/segments/{segmentID}
Jsflagr.SegmentApi putSegmentsReorder PUT /flags/{flagID}/segments/reorder
Jsflagr.TagApi createTag POST /flags/{flagID}/tags
Jsflagr.TagApi deleteTag DELETE /flags/{flagID}/tags/{tagID}
Jsflagr.TagApi findAllTags GET /tags
Jsflagr.TagApi findTags GET /flags/{flagID}/tags
Jsflagr.VariantApi createVariant POST /flags/{flagID}/variants
Jsflagr.VariantApi deleteVariant DELETE /flags/{flagID}/variants/{variantID}
Jsflagr.VariantApi findVariants GET /flags/{flagID}/variants
Jsflagr.VariantApi putVariant PUT /flags/{flagID}/variants/{variantID}

Documentation for Models

Documentation for Authorization

All endpoints do not require authorization.