404 при использовании Dark Weather Weather API с Ember - PullRequest
0 голосов
/ 02 мая 2018

Есть идеи, почему я получаю 404, когда пытаюсь сделать GET-запрос к Dark Sky? https://darksky.net/dev/docs

Ошибка:

jquery.js:9600 GET https://api.darksky.net/forecast?key=secretString&latitude=42.361145&longitude=-71.057083&time=1525213510 404 (Not Found)

Вот моя модель:

import DS from 'ember-data';

export default DS.Model.extend({
  temperature: ('number'),
  summary: DS.attr('string'),
  icon: DS.attr('string')
});

Вот мой маршрут (я также пытался сохранить lat и long в строковом формате):

import Route from '@ember/routing/route';

export default Route.extend({
  model () {
    let currentTime = Math.round(new Date()/1000);
    return this.store.query('weather', { key: "secret_string", latitude: 42.361145, longitude: -71.057083, time: currentTime} );
  }
});

Вот мой адаптер:

import DS from 'ember-data';

export default DS.RESTAdapter.extend({
  host: "https://api.darksky.net",

  pathForType() {
    return 'forecast';
  }
});

А вот мой сериализатор:

import DS from 'ember-data';

export default DS.RESTSerializer.extend({
  normalizeResponse(store, primaryModelClass, payload, id, requestType) {
    payload = { weather: payload };
    return this._super(store, primaryModelClass, payload, id, requestType);
  }
});

1 Ответ

0 голосов
/ 02 мая 2018

Ваш запрос GET не соответствует формату в документах Dark Sky, скопирован и вставлен ниже:

https://api.darksky.net/forecast/0123456789abcdef9876543210fedcba/42.3601,-71.0589

Ваш запрос содержит ключ в качестве параметра запроса, а не сегмент URL.

Вы можете указать хост или пространство имен в вашем адаптере, чтобы ключ был сегментом URL:

import DS from 'ember-data';

export default DS.RESTAdapter.extend({
  host: "https://api.darksky.net/yoursecretkey",
});
...