# falcor-http-datasource **Repository Path**: mirrors_netflix/falcor-http-datasource ## Basic Information - **Project Name**: falcor-http-datasource - **Description**: A DataSource for Falcor that can be use to retrieve JSON Graph data from an HTTP server. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-19 - **Last Updated**: 2026-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HttpDataSource This is a Falcor DataSource which can be used to retrieve JSON Graph information from an HTTP server. ## Install ```bash npm install falcor-http-datasource ``` ## Usage Minimalistic ES6 example, a quick dirty setup ```es6 import falcor from 'falcor'; import HttpDataSource from 'falcor-http-datasource'; var model = new falcor.Model({ source: new HttpDataSource('/model.json') }); ``` If you need some additional info for your global HTTP requests consider something like JWT ```javascript var source = new HttpDataSource('/model.json', { headers: { 'Authorization': `bearer ' + token` } }); ``` POST JSON ```javascript var source = new HttpDataSource('/model.json', { headers: { 'Content-Type': 'application/json' } }); ``` Cookies ```javascript var source = new HttpDataSource('/model.json', { withCredentials: true }); // server must include the header `Access-Control-Allow-Credentials: true` ``` CORS ```javascript var source = new HttpDataSource('/model.json', { crossDomain: true }); ``` or you might want to pass it to constructor as your global AppSource ```es6 export class AppSource extends HttpDataSource { constructor(path, token) { super(path, { headers: { 'Authorization': `bearer ${ token }` } timeout: 20000 }) } get(...args) { // returns an Observable if you wanted to map/filter/reduce/etc return super.get(...args) } set(...args) { // returns an Observable if you wanted to map/filter/reduce/etc return super.set(...args) } call(...args) { // returns an Observable if you wanted to map/filter/reduce/etc return super.call(...args) } onBeforeRequest(config) { // as of now you're able to mutate the config object before we create our xhr instance // you would attach any url params here // config.url = config.url + '&something=Value' console.log(config); } buildQueryObject(...args) { // helper method to build our url for advanced implementations return super.buildQueryObject(...args) } } export class FalcorModel extends falcor.Model { constructor(cache) { super({ cache: cache, source: new AppSource('/model.json', user.token) }); } } ```