EmberJS - Personalização de adaptadores

O adaptador Ember.js especifica como os dados são mantidos no armazenamento de dados de backend, como o formato da URL e os cabeçalhos da API REST. O adaptador padrão do Ember inclui algumas suposições integradas para a API REST. Essas suposições ajudam a construir um aplicativo da web muito mais fácil e melhor.

O adaptador pode ser criado usando o seguinte comando -

ember generate adapter adapter-name

Quando você executa o comando acima, ele exibe as seguintes linhas -

import DS from 'ember-data';

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

Os dados do Ember têm os seguintes adaptadores integrados -

  • DS.Adapter - É um adaptador básico sem funcionalidade em Ember.js.

  • DS.JSONAPIAdapter - É um adaptador padrão que faz interface com o servidor HTTP e segue as convenções da API JSON transferindo JSON via XHR.

  • DS.RESTAdapter - É usado para se comunicar com o servidor HTTP usando sua loja que transfere o JSON via XHR.

Convenções de URL JSONAPIAdapter

O JSONAPIAdapter especifica URLs com base no nome do modelo.

Por exemplo -

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

O JSONAPIAdapter enviará a solicitação GET para / myposts / 1, se você solicitar MyPost por ID. As seguintes ações podem ser usadas em registros no JSONAPIAdapter -

S.No. Açao Verbo HTTP URL
1 Encontrar PEGUE / myposts / 123
2 Encontrar tudo PEGUE /minhas postagens
3 Atualizar FRAGMENTO / myposts / 123
4 Crio POSTAR /minhas postagens
5 Excluir EXCLUIR / myposts / 123

Personalização do caminho do terminal

O caminho do terminal pode ser personalizado usando a propriedade do namespace com o namespace de url específico.

import DS from 'ember-data';

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

Se você solicitar o modelo myval , ele exibirá o url comohttp://emberjs.com/api/1/myval/1.

Personalização de Host

Você pode especificar o novo domínio usando a propriedade do host no adaptador -

import DS from 'ember-data';

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

Se você solicitar o modelo myval , ele exibirá o url comohttp://api.mysite.com/myval/1.

Personalização de caminho

O JSONAPIAdapter gera o nome do caminho pluralizando e dasherizing o nome do modelo. Você pode substituir o método pathForType , se esse comportamento não for confirmado para o backend.

import DS from 'ember-data';

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

Personalização de cabeçalhos

Os cabeçalhos podem ser personalizados fornecendo os pares de chave / valor no objeto de cabeçalhos JSONAPIAdapter e os dados do Ember enviarão o par de chave / valor junto com cada solicitação ajax.

import DS from 'ember-data';

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

Adaptadores de autoria

O serializador pode ser especificado usando o adaptador defaultSerializer que é usado somente quando o serializador ou serializador específico : o aplicativo não está definido. Pode ser escrito como -

import DS from 'ember-data';

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