Сбой ответа на собственный запрос с кодом состояния 400 - PullRequest
0 голосов
/ 12 мая 2019

Есть ли у кого-нибудь опыт работы с этим API: https://authenticjobs.com/api/docs#introduction

Я проходил несколько итераций реализации в своем проекте React Native, и я изначально получал эту ошибку:

undefined не является объектом (оценивается как _ref.longitude)

И теперь я получаю эту ошибку:

Запрос не выполнен с кодом состояния 400

Это создатель действия, который пытается зарегистрировать объект data этого запроса API.

import axios from "axios";
import reverseGeoCode from "latlng-to-zip";
import qs from "qs";

import { FETCH_JOBS } from "./types";

const JOB_ROOT_URL = "https://authenticjobs.com/api/?";
const JOB_QUERY_PARAMS = {
  api_key: "5634cc46389d0d872723b8c46fba672c",
  format: "json"
  // latlong: 1,
  // radius: 10,
  // q: "javascript"
};

const buildJobsUrl = zip => {
  const query = qs.stringify({ ...JOB_QUERY_PARAMS, l: zip });
  return `${JOB_ROOT_URL}${query}`;
};

export const fetchJobs = region => async dispatch => {
  try {
    let zip = await reverseGeoCode(region);
    const url = buildJobsUrl(zip);
    let { data } = await axios.get(url);
    dispatch({ type: FETCH_JOBS, payload: data });
    console.log(data);
  } catch (e) {
    console.log(e);
  }
};

1 Ответ

0 голосов
/ 12 мая 2019

Я заставил его работать с этим рефакторингом, хотя это отчасти отнимет мое приложение в другом направлении:

import axios from "axios";

import { FETCH_JOBS } from "./types";

const JOB_ROOT_URL = "https://authenticjobs.com/api/?api_key=";
const JOB_QUERY_PARAMS = {
  key: "a446a0eefe6f5699283g34f4d5b51fa0",
  method: "aj.jobs.getLocations",
  format: "json",
  category: "javascript"
};

export const fetchJobs = region => async dispatch => {
  try {
    const url =
      JOB_ROOT_URL +
      JOB_QUERY_PARAMS.key +
      "&method=" +
      JOB_QUERY_PARAMS.method +
      "&category=" +
      JOB_QUERY_PARAMS.category +
      "&format=" +
      JOB_QUERY_PARAMS.format;
    let { data } = await axios.get(url);
    dispatch({ type: FETCH_JOBS, payload: data });
    console.log(data);
  } catch (e) {
    console.log(e);
  }
};
...