Signing

All private requests to the API need to include a signature. Currentlysupport HMAC-Sha1. Other signitures are coming soon.

Application ID

Following the github, twitter and facebook model, we provide the abilitygenerate Application Id for client access to the API. Registration is in beta.

Rate Limiting

All public API request, while available without a key or signiture haverate limits. These will be documents in the coming months. We be happy to adjust any rates per Application ID.


Third Party OAuth

Formagg.io is NOT a third party OAuth Provider. You can not use this as you would twitter, facebook etc to login into different web But you can let your users link their accounts to provide faster access.formagg.io site uses this service to talk to the API. The /authenticate/accesstoken will access username + password or provider + ID.

API UI

We have additionally implemented the four part authentication in Swagger UI on API.Formagg.io. You can use the sandbox Application ID 'sandbox / verysandy' to navigate the API. When you create your own ID you can explore the API directly. This helps test your code.

Explore the API >>

Open Source

100% of the code and patterns used on this API were from and github projects. We have started to open sourceof our codebase. Braque is the first.


Sample Code

We are big into braque, since it removes the need for all the API specificcurrently in NPM. Below is sample node.js code for adding the formagg.ioto a project.

Braque on Github >>  Braque on NPM >> Current Route Gist >>

npm install braque --save
var Braque = require('braque');

// Tell braque about the API.
var github = new Braque({ version: '3.0.0', routeFile: './formaggio-v1.0.0.json', });

// For Private calls or to get access to custom Rate-Limits. Provide // braque with the Auth strategry to deploy. This is option for public // API routes.

formaggio.authenticate({ type: "oauth", applicationId: process.env.FORMAGGIO_APPID, applicationSecret: process.env.FORMAGGIO_APPSECRET,

// TODO: confirm this. username: 'XXXXXXXXXX', password: 'XXXXXXXXXX' });

// Standalone Call to get a cheese document. formaggio.cheese.get( { cheese: 'XXXX' }, function(err, cheeseData) { if (err) return console.log(err);

console.log(cheeseData); });

// ExpressJS Example. (Express App Setup not shown.)
app.get('/cheese/:id', function(req, res) {

formaggio.cheese.get( { cheese: req.params.id }, function(err, cheeseData) { if (err) return res.send(err); res.send(200, cheeseData); });

})