Home

Awesome

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:

Installation

For Node.js

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

ClassMethodHTTP requestDescription
Jsflagr.ConstraintApicreateConstraintPOST /flags/{flagID}/segments/{segmentID}/constraints
Jsflagr.ConstraintApideleteConstraintDELETE /flags/{flagID}/segments/{segmentID}/constraints/{constraintID}
Jsflagr.ConstraintApifindConstraintsGET /flags/{flagID}/segments/{segmentID}/constraints
Jsflagr.ConstraintApiputConstraintPUT /flags/{flagID}/segments/{segmentID}/constraints/{constraintID}
Jsflagr.DistributionApifindDistributionsGET /flags/{flagID}/segments/{segmentID}/distributions
Jsflagr.DistributionApiputDistributionsPUT /flags/{flagID}/segments/{segmentID}/distributions
Jsflagr.EvaluationApipostEvaluationPOST /evaluation
Jsflagr.EvaluationApipostEvaluationBatchPOST /evaluation/batch
Jsflagr.ExportApigetExportEvalCacheJSONGET /export/eval_cache/json
Jsflagr.ExportApigetExportSqliteGET /export/sqlite
Jsflagr.FlagApicreateFlagPOST /flags
Jsflagr.FlagApideleteFlagDELETE /flags/{flagID}
Jsflagr.FlagApifindFlagsGET /flags
Jsflagr.FlagApigetFlagGET /flags/{flagID}
Jsflagr.FlagApigetFlagEntityTypesGET /flags/entity_types
Jsflagr.FlagApigetFlagSnapshotsGET /flags/{flagID}/snapshots
Jsflagr.FlagApiputFlagPUT /flags/{flagID}
Jsflagr.FlagApisetFlagEnabledPUT /flags/{flagID}/enabled
Jsflagr.HealthApigetHealthGET /health
Jsflagr.SegmentApicreateSegmentPOST /flags/{flagID}/segments
Jsflagr.SegmentApideleteSegmentDELETE /flags/{flagID}/segments/{segmentID}
Jsflagr.SegmentApifindSegmentsGET /flags/{flagID}/segments
Jsflagr.SegmentApiputSegmentPUT /flags/{flagID}/segments/{segmentID}
Jsflagr.SegmentApiputSegmentsReorderPUT /flags/{flagID}/segments/reorder
Jsflagr.TagApicreateTagPOST /flags/{flagID}/tags
Jsflagr.TagApideleteTagDELETE /flags/{flagID}/tags/{tagID}
Jsflagr.TagApifindAllTagsGET /tags
Jsflagr.TagApifindTagsGET /flags/{flagID}/tags
Jsflagr.VariantApicreateVariantPOST /flags/{flagID}/variants
Jsflagr.VariantApideleteVariantDELETE /flags/{flagID}/variants/{variantID}
Jsflagr.VariantApifindVariantsGET /flags/{flagID}/variants
Jsflagr.VariantApiputVariantPUT /flags/{flagID}/variants/{variantID}

Documentation for Models

Documentation for Authorization

All endpoints do not require authorization.