ember-api-actions, 在 ember.js 应用程序中,触发API操作

分享于 

4分钟阅读

GitHub

  繁體 雙語
Trigger API actions in ember.js apps
  • 源代码名称:ember-api-actions
  • 源代码网址:http://www.github.com/mike-north/ember-api-actions
  • ember-api-actions源代码文档
  • ember-api-actions源代码下载
  • Git URL:
    git://www.github.com/mike-north/ember-api-actions.git
    Git Clone代码到本地:
    git clone http://www.github.com/mike-north/ember-api-actions
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/mike-north/ember-api-actions
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    ember-api-actions

    Greenkeeper badge

    Build StatusDependency StatusdevDependency StatusEmber Observer Scorenpm versionCode Climate

    触发ember数据资源上不适合典型的rest rest API设计的"远程"操作。

    例如如果你有rest式API端点,比如

    
    GET/fruits
    
    
    POST/fruits
    
    
    GET/fruits/123
    
    
    PUT/fruits/123
    
    
    DELETE/fruits/123
    
    
    
    

    如果要使用这样的API端点,会发生什么情况:

    
    PUT/fruits/123/ripen
    
    
    GET/fruits/citrus
    
    
    
    

    示例 Rails API路由:

    配置/路由。rb

    Rails.application.routes.draw do resources :fruitsdo member do put 'ripen'to:'fruits#ripen'end collection do get 'citrus'to:'fruits#citrus_index'endendend

    ember数据的直观,这类API端点可以在广泛使用的RESTful API找到。 这个图书馆的目的是让它变得容易。

    使用

    # ember-cli> = 0.2.3ember install ember-api-actions# ember-cli <0.2.3ember install:addon ember-api-actions

    然后可以将这些"操作"( 不要与客户端 ember.js 操作混淆) 添加到你的ember数据模型中

    app/models/fruit.js

    importDSfrom'ember-data';import { memberAction, collectionAction } from'ember-api-actions';const { attr } =DS;exportdefaultDS.Model.extend({
     name:attr('string'),
     ///fruits/123/ripen ripen:memberAction({ path:'ripen' }),
     ///fruits/citrus getAllCitrus:collectionAction({
     path:'citrus',
     type:'post', // HTTP POST request urlType:'findRecord'// Base of the URL that's generated for the action })
    });

    然后调用这些函数,它们将启动API请求并返回承诺

    // Pass data in, it will be sent in the POST or PUT request payloadmyRecord.ripen({someData:'abc'}).then(response=> {
     // do something when the API returns a response});

    文档级自定义项

    ember-api-actions通过ember数据适配器生成url和ajax配置。 它将识别合适的适配器,调用 buildURLajaxOptions 方法来发送类似于常规ember数据使用方式的JSON请求。

    定制适配器应该定制通过这个库发出的请求,以及任何其他ember数据请求。

    ember-api-actions使用 DS.Adapter 上的follow方法

    • buildURL - 用于生成操作的URL
    • ajax ( private ) - 实际发出API请求并返回承诺

    兼容性

    这个插件可以用来处理 ember.js 和ember数据的某些组合

    Ember.js ember数据
    1.10 <= ember <1.131.0.0-beta.16.0 <= ember-data <= 1.0.0-beta.19
    1.13.x1.13.x
    2.0.x2.0.x

    安装

    • git clone 这里存储库
    • npm install
    • bower install

    运行

    运行测试

    • npm test ( 运行 ember try:testall 以针对多个Ember版本测试插件)
    • ember test
    • ember test --server

    确保设置 ALLOW_DEPRECATIONS=true,否则测试会引发错误

    建筑

    • ember build

    有关使用ember的更多信息,请访问 http://ember-cli.com/

    Analytics


    API  act  ember  Action  actions  trigger  
    相关文章