6

Ember と通信する API の Loopback を試しています。

Ember では、たとえばアカウントの場合、「キー」に JSON が含まれている必要があります。

{ account:
   { domain: 'domain.com',
     subdomain: 'test',
     title: 'test.domain.com',
     id: 1 
} }

afterRemote フックを使用して、Ember が応答を受信できるように応答を変更する方法について、Google グループでいくつかのアドバイスを見つけました。

私のmodels/account.jsの例:

module.exports = function(Account) {

    Account.afterRemote('**', function (ctx, account, next) {
      if(ctx.result) {
        if(Array.isArray(ctx.result)) {
          ctx.res.body = { 'accounts': account };
        } else {
          ctx.res.body = { 'account': account };
        }
      }

      console.log(ctx.res.body);

      next();
    });

};

応答がコンソールに表示されているはずですが、localhost:3000/api/accounts の JSON 出力には、変更された JSON オブジェクトが表示されません。

ループバックで JSON 応答/要求を変更する正しい方法は何ですか?

すべてのモデルに適用できるように、一般的な方法が理想的です。

4

1 に答える 1

1

次のようにDS.RESTAdapterwithを使用して、Ember-data を Strongloop のループバック API と互換性を持たせることができます。DS.JSONSerializer

// app/adapters/application.js

import DS from 'ember-data';

export default DS.RESTAdapter.extend({
  host: 'http://loopback-api-host',
  namespace: 'api',
  defaultSerializer: 'JSONSerializer'
});

http://emberjs.com/api/data/classes/DS.JSONSerializer.html

「Ember Data では、バックエンド データ ストアと通信するためのロジックがアダプタに存在します。Ember Data のアダプタには、REST API がどのように見えるべきかについて、いくつかの前提が組み込まれています。バックエンドの規則がこれらの前提と異なる場合、Ember Data を使用すると、デフォルトのアダプタを交換または拡張して機能を変更してください。」

http://guides.emberjs.com/v2.0.0/models/customizing-adapters/

類似の質問: Emberjs を使用した Strongloop

于 2015-09-08T21:37:41.637 に答える