Ember.js разные ресурсы в одном пространстве имен

Ура! У меня есть разные ресурсы в одном пространстве имен на моей стороне рельсов:

  namespace :api, defaults: { format: :json } do
    resources :users, only: [:show] do
      collection do
        get 'profile'
      end
    end
    resource :music, only: [], controller: 'music' do
      collection do
        get 'search'
      end
    end
  end

Есть ли способ разделить пространства имен 'api/users' и 'api/music' в моем rest_adapter?

Bandyard.CustomAdapter = DS.RESTAdapter.extend({
  bulkCommit: false,
  url: "http://bandyard.dev",
  namespace: 'api/users'
});

Что делать, если мне нужно взять JSON с пути "API / музыка"?

1 ответ

Что делать, если мне нужно взять JSON с пути "API / музыка"?

Вы должны просто установить пространство имен вашего адаптера ember просто на "api". REST-адаптер Ember data добавит к нему "/ music" или "/ users" в зависимости от названия модели.

См. Руководство по остальным адаптерам для получения подробной информации о соглашениях по именованию по умолчанию

Мне нужно получить ресурс 'profile' из 'host / api / users / profile' и 'search' из 'host/api/music/search'. Если я установлю для пространства имен моего адаптера значение "api", он получит ресурс "profile" из "host / api / profile".

Чтобы настроить конечную точку для конкретной модели, рассмотрите возможность переопределения любого метода buildURL на вашем адаптере. Смотрите вопрос Как переопределить URL для одной модели в RestAdapter

Вам также может быть полезен этот запрос на извлечение: выставьте параметр суффикса buildURL в findQuery, фильтр

Другие вопросы по тегам