Show:

JsonResultsAdapter Class

Module: breeze

A JsonResultsAdapter instance is used to provide custom extraction and parsing logic on the json results returned by any web service. This facility makes it possible for breeze to talk to virtually any web service and return objects that will be first class 'breeze' citizens.

Item Index

Methods

<ctor> JsonResultsAdapter

(
  • config
)

JsonResultsAdapter constructor

Parameters:

  • config Object
    • name String

      The name of this adapter. This name is used to uniquely identify and locate this instance when an 'exported' JsonResultsAdapter is later imported.

    • [extractResults] Function optional

      Called once per query operation to extract the 'payload' from any json received over the wire. This method has a default implementation which to simply return the "results" property from any json returned as a result of executing the query.

    • [extractSaveResults] Function optional

      Called once per save operation to extract the entities from any json received over the wire. Must return an array. This method has a default implementation which to simply return the "entities" property from any json returned as a result of executing the save.

    • [extractKeyMappings] Function optional

      Called once per save operation to extract the key mappings from any json received over the wire. Must return an array. This method has a default implementation which to simply return the "keyMappings" property from any json returned as a result of executing the save.

    • visitNode Function

      A visitor method that will be called on each node of the returned payload.

Example:

//
var jsonResultsAdapter = new JsonResultsAdapter({
    name: "test1e",
    extractResults: function(json) {
        return json.results;
    },
    visitNode: function(node, mappingContext, nodeContext) {
        var entityType = normalizeTypeName(node.$type);
        var propertyName = nodeContext.propertyName;
        var ignore = propertyName && propertyName.substr(0, 1) === "$";

        return {
            entityType: entityType,
            nodeId: node.$id,
            nodeRefId: node.$ref,
            ignore: ignore,
            passThru: false // default
        };
    }
});

var dataService = new DataService( {
        serviceName: "breeze/foo",
        jsonResultsAdapter: jsonResultsAdapter
});

var entityManager = new EntityManager( {
    dataService: dataService
});