帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:JAVA  SID  API  Json Api  Javascript  数据  
JavaScript client-side JSON API data handling made easy.

  • 源代码名称:jsonapi-datastore
  • 源代码网址:http://www.github.com/beauby/jsonapi-datastore
  • jsonapi-datastore源代码文档
  • jsonapi-datastore源代码下载
  • Git URL:
    git://www.github.com/beauby/jsonapi-datastore.git
  • Git Clone代码到本地:
    git clone http://www.github.com/beauby/jsonapi-datastore
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/beauby/jsonapi-datastore
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • jsonapi数据存储

    Build Status

    JavaScript客户端 JSON 数据句柄。

    当前版本为 v0.4.0 -beta 。 它仍在进行中,但应该做它所说的。

    描述

    JSONAPI 标准对于交换数据( 那是它的目的) 非常有用,但是这种格式并不适合直接在应用程序中使用。 JSONAPI数据存储是一个JavaScript框架,它去掉了处理客户机端的 JSONAPI数据的负担。

    它的用途:

    • 读取JSONAPI有效载荷
    • 重新生成基础数据图表,
    • 允许你直接查询模型并直接访问它们的关系,
    • 创建新模型
    • 序列化用于创建/更新的模型。

    它不执行的操作:

    • 向你的API发出请求。 你设计端点的url,处理认证的方式,缓存,等等 完全取决于你自己。

    安装

    运行以下命令,以 bower 安装jsonapi数据存储:

    $ bower install jsonapi-datastore

    或者通过运行 npm 来执行以下操作:

    $ npm install jsonapi-datastore

    解析数据

    只需调用你的存储的.sync() 方法。

    var store =newJsonApiDataStore();store.sync(data);

    解析数据并将它的合并到存储中,并负责已经存在的记录( 通过更新它们) 和关系。

    元数据解析

    如果负载中有元数据,则使用存储的.syncWithMeta 方法。

    var store =newJsonApiDataStore();store.syncWithMeta(data);

    这完成了 .sync() 所做的一切,但是返回了一个带有数据和元分割的对象。

    检索模型

    只需调用你的存储的.find(type, id) 方法。

    var article =store.find('article', 123);

    或者调用存储的.findAll(type) 方法来获取该类型的所有模型。

    var articles =store.findAll('article');

    可以通过模型将所有属性( ) 关系作为对象属性进行访问。

    console.log(article.author.name);

    如果还没有获取相关资源( 作为主要资源或者包含资源),模型上的相应属性将只包含 typeid ( 并且 ._placeHolder 属性将设置为 true ) 。 然而,这些模型是在适当的位置更新的,所以你可以稍后获取相关的资源,并且数据将保持一致。

    序列化数据

    只需调用模型上的.serialize() 方法。

    console.log(article.serialize());

    示例

    // Create a store:var store =newJsonApiDataStore();// Then, given the following payload, containing two `articles`, with a related `user` who is the author of both:var payload = {
     data: [{
     type:'article',
     id:1337,
     attributes: {
     title:'Cool article' },
     relationships: {
     author: {
     data: {
     type:'user',
     id:1 }
     }
     }
     }, {
     type:'article',
     id:300,
     attributes: {
     title:'Even cooler article' },
     relationships: {
     author: {
     data: {
     type:'user',
     id:1 }
     }
     }
     }]
    };// we can sync it:var articles =store.sync(payload);// which will return the list of synced articles.// Later, we can retrieve one of those:var article =store.find('article', 1337);// If the author resource has not been synced yet, we can only access its id and its type:console.log(article.author);// { id: 1, _type: 'article' }// If we do sync the author resource later:var authorPayload = {
     data: {
     type:'user',
     id:1,
     attributes: {
     name:'Lucas' }
     }
    };store.sync(authorPayload);// we can then access the author's name through our old `article` reference:console.log(article.author.name);// 'Lucas'// We can also serialize any whole model in a JSONAPI-compliant way:console.log(article.serialize());//.. .// or just a subset of its attributes/relationships:console.log(article.serialize({ attributes: ['title'], relationships: []}));//.. .

    文档

    请参见 DOCUMENTATION.md

    缺少什么

    当前,存储不处理 links 属性或者资源级别或者关系级别元数据。

    注释

    AngularJS

    jsonapi数据存储与AngularJs包装器捆绑在一起。 只在 index.html 中包含 ng-jsonapi-datastore.js,并在应用程序中需要 MODULE beauby.jsonApiDataStore 。 然后,可以使用 JsonApiDataStore 工厂,该工厂基本上定义如下:

    {
     store:newJsonApiDataStore(),
     Model: JsonApiDataStoreModel
    }

    这样,你可以按如下方式使用它:

    angular
    . module('myApp')
    . controller('myController', function(JsonApiDataStore) {
     var article =JsonApiDataStore.store.find('article', 1337);
     var newArticle =newJsonApiDataStore.Model('article');
     newArticle.setAttribute('title', 'My cool article');
     console.log(newArticle.serialize());
     });

    所有请求请求欢迎 !



    文章标签:JAVA  数据  Javascript  API  SID  Json Api  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语