{"_id":"sdk.js","_rev":"3-56f43cf7e0ac2360427e9cdad94aa289","name":"sdk.js","description":"JavaScript SDK","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.1":{"name":"sdk.js","description":"JavaScript SDK","license":"MIT","author":{"name":"Shilov Vasily","url":"https://github.com/shcoder-ru"},"repository":{"type":"git","url":"https://github.com/shcoder-ru/sdk.js.git"},"main":"sdk.js","homepage":"https://github.com/shcoder-ru/sdk.js","bugs":{"url":"https://github.com/shcoder-ru/sdk.js/issues"},"version":"1.0.1","keywords":["javascript","sdk","base"],"gitHead":"a00a76f7f3e19dc26edbecea91009057ed45b406","_id":"sdk.js@1.0.1","scripts":{},"_shasum":"8258d1b79441967d1aa393671f04e6bb12ab8f6f","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"shcoder","email":"shcoder.ru@ya.ru"},"dist":{"shasum":"8258d1b79441967d1aa393671f04e6bb12ab8f6f","tarball":"https://registry.npmjs.org/sdk.js/-/sdk.js-1.0.1.tgz","integrity":"sha512-gzd5HigVo678+luBU81L+6q5mUETDD97hA79axyw26ELQEqmwbfDuKTRwM4PAh7j97lURudc/p4z15GSGltFGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDz27hY1ttADSawc5sU6UPJjwSy5/+67lEr90b0BY6XKQIhAKWJhsw2y0wuuhLiO/Y+gXkTHgbwCGjw23QB29I1uPD9"}]},"maintainers":[{"name":"shcoder","email":"shcoder.ru@ya.ru"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/sdk.js-1.0.1.tgz_1456131521378_0.00031126756221055984"}}},"readme":"# JavaScript SDK\nThe basis for the construction of JavaScript SDK.\n\n## Installing\n\nCloning of repository\n``` bash\ngit clone https://github.com/shcoder-ru/sdk.js.git\n```\n\nInclude sdk.js in HTML code\n``` html\n<script src=\"/path/to/sdk.js\"></script>\n```\n\nInclude middleware files on the server side.\n``` javascript\nvar method = require('/path/to/middleware/method.js');\nvar cors = require('/path/to/middleware/cors.js');\napp.use(method());\napp.use(cors(['http://origin', 'http://anotherorigin']));\n```\n\n## Methods\n\n### SDK.setup\n\n```javascript\n.setup({\n  contentType: '<string>', // Example application/json\n  baseUrl: <string>, // Example http(s)://servername/path/to/api\n  httpMethodOverride: <boolean>, // If set to true, will be replaced all methods except GET and POST to POST (For CORS)\n  forcedResponseStatus: <integer>, // HTTP status code (exmple 200 - For CORS)\n  withCredentials: <boolean>, // XHR withCredentials field (For CORS)\n  timeout: <integer> // Request timeout\n});\n```\n\n### SDK.exec\n\n```javascript\n.exec(<function>) // Callback function\n.exec(function(error, result){\n  // error - Response error (null|object)\n  // result - Response result\n})\n```\n\n### SDK.then\n\n```javascript\n.then(<function>) // Callback function\n.then(function(result){\n  // result - Response result\n})\n```\n\n### SDK.catch\n\n```javascript\n.catch(<function>) // Callback function\n.catch(function(error){\n  // error - Response error (null|object)\n})\n```\n\n### SDK.data\n\n```javascript\n.data(<object>) // Body of HTTP request\n```\n\n### SDK.query\n\n```javascript\n.query(<object>) // URI query parameters\n```\n\n### SDK.args\n\n```javascript\n.args(<object>) // Pathname parameters (For \"/entitys/{entityId}\" {entityId: 'value'})\n```\n\n## Configure\n``` javascript\nSDK.setup({\n  contentType: 'application/json',\n  baseUrl: http://servername/api/v1,\n  httpMethodOverride: true,\n  forcedResponseStatus: 200,\n  withCredentials: true,\n  timeout: 30000\n});\n```\n\n## Angular service\n``` javascript\nangular\n  .module('services')\n  .service('$sdk', function($window){\n    $window.SDK.setup({\n      contentType: 'application/json',\n      baseUrl: http://servername/api/v1,\n      httpMethodOverride: true,\n      forcedResponseStatus: 200,\n      withCredentials: true,\n      timeout: 30000\n    });\n    return $window.SDK;\n  });\n```\n\n## Difinition of SDK methods\n``` javascript\nSDK.addMethod('Entity.create', '/entitys', 'POST');\nSDK.addMethod('Entity.list', '/entitys', 'GET');\nSDK.addMethod('Entity.get', '/entitys/{entityId}', 'GET');\nSDK.addMethod('Entity.update', '/entitys/{entityId}', 'PUT');\nSDK.addMethod('Entity.delete', '/entitys/{entityId}', 'DELETE');\n```\n\n## Usage\n``` javascript\nSDK.callMethod('Entity.create')\n  .data({\n    key: 'value'\n  })\n  .exec(function(err, result){\n    // use err and result\n  })\n  .then(function(result){\n    // use result\n  });\n  .catch(function(err){\n    // use err\n  });\n\nSDK.callMethod('Entity.list')\n  .query({\n    key: 'value'\n  })\n  .exec(function(err, result){\n    // use err and result\n  })\n  .then(function(result){\n    // use result\n  });\n  .catch(function(err){\n    // use err\n  });\n\nSDK.callMethod('Entity.get')\n  .args({\n    entityId: 'value'\n  })\n  .exec(function(err, result){\n    // use err and result\n  })\n  .then(function(result){\n    // use result\n  });\n  .catch(function(err){\n    // use err\n  });\n\nSDK.callMethod('Entity.update')\n  .args({\n    entityId: 'value'\n  })\n  .data({\n    key: 'value'\n  })\n  .exec(function(err, result){\n    // use err and result\n  })\n  .then(function(result){\n    // use result\n  });\n  .catch(function(err){\n    // use err\n  });\n\nSDK.callMethod('Entity.delete')\n  .args({\n    entityId: 'value'\n  })\n  .exec(function(err, result){\n    // use err and result\n  })\n  .then(function(result){\n    // use result\n  });\n  .catch(function(err){\n    // use err\n  });\n```","maintainers":[{"name":"shcoder","email":"shcoder.ru@ya.ru"}],"time":{"modified":"2022-06-26T17:02:29.778Z","created":"2016-02-22T08:58:45.134Z","1.0.1":"2016-02-22T08:58:45.134Z"},"homepage":"https://github.com/shcoder-ru/sdk.js","keywords":["javascript","sdk","base"],"repository":{"type":"git","url":"https://github.com/shcoder-ru/sdk.js.git"},"author":{"name":"Shilov Vasily","url":"https://github.com/shcoder-ru"},"bugs":{"url":"https://github.com/shcoder-ru/sdk.js/issues"},"license":"MIT","readmeFilename":"README.md"}