EmberJS - Adattatori di personalizzazione

L'adattatore Ember.js specifica come vengono conservati i dati nell'archivio dati back-end, come il formato dell'URL e le intestazioni dell'API REST. L'adattatore predefinito di Ember include alcuni presupposti incorporati per l'API REST. Questi presupposti aiutano a costruire un'applicazione web molto più semplice e migliore.

L'adattatore può essere creato utilizzando il seguente comando:

ember generate adapter adapter-name

Quando esegui il comando precedente, verranno visualizzate le seguenti righe:

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   // code goes here
});

I dati di Ember hanno i seguenti adattatori integrati:

  • DS.Adapter - È un adattatore di base senza funzionalità in Ember.js.

  • DS.JSONAPIAdapter - È un adattatore predefinito che si interfaccia con il server HTTP e segue le convenzioni dell'API JSON trasferendo JSON tramite XHR.

  • DS.RESTAdapter - Viene utilizzato per comunicare con il server HTTP utilizzando il tuo negozio che trasferisce il JSON tramite XHR.

Convenzioni URL JSONAPIAdapter

JSONAPIAdapter specifica gli URL in base al nome del modello.

Ad esempio:

store.findRecord('mypost', 1).then(function(myfunc) {
});

Il JSONAPIAdapter invierà la richiesta GET a / myposts / 1, se richiedi MyPost per ID. Le seguenti azioni possono essere utilizzate sui record in JSONAPIAdapter:

S.No. Azione Verbo HTTP URL
1 Trova OTTENERE / myposts / 123
2 Trova tutto OTTENERE / myposts
3 Aggiornare PATCH / myposts / 123
4 Creare INVIARE / myposts
5 Elimina ELIMINA / myposts / 123

Personalizzazione del percorso dell'endpoint

Il percorso dell'endpoint può essere personalizzato utilizzando la proprietà dello spazio dei nomi con uno spazio dei nomi URL specifico.

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   namespace: 'api/1'
});

Se richiedi il modello myval , verrà visualizzato l'URL comehttp://emberjs.com/api/1/myval/1.

Personalizzazione host

È possibile specificare il nuovo dominio utilizzando la proprietà host sull'adattatore -

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   host: 'https://api.mysite.com'
});

Se richiedi il modello myval , verrà visualizzato l'URL comehttp://api.mysite.com/myval/1.

Personalizzazione del percorso

JSONAPIAdapter genera il nome del percorso pluralizzando e dasherize il nome del modello. È possibile sovrascrivere il metodo pathForType , se questo comportamento non conferma il backend.

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   pathForType: function(type) {
      return Ember.String.underscore(type);
   }
});

Personalizzazione delle intestazioni

Le intestazioni possono essere personalizzate fornendo le coppie chiave / valore sull'oggetto intestazioni JSONAPIAdapter ei dati Ember invieranno la coppia chiave / valore insieme a ciascuna richiesta ajax.

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   headers: {
      'API_KEY': 'secret key',
      'ANOTHER_HEADER': 'header value'
   }
});

Adattatori per la creazione

Il serializzatore può essere specificato utilizzando l' adattatore defaultSerializer che viene utilizzato solo quando serializzatore o serializzatore specifico : applicazione non è definito. Può essere scritto come -

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend ({
   defaultSerializer: '-default
});