Axe ios и API New York Times - PullRequest
       99

Axe ios и API New York Times

0 голосов
/ 04 мая 2020

Я использую ax ios, чтобы получить данные из API поиска New York Times для использования в моем собственном приложении, и по какой-то причине я продолжаю получать пустые результаты. вот код, который я использовал:

в nytimes. js файл:

import axios from "axios";

export default axios.create({
  baseURL: "https://api.nytimes.com/svc/search/v2",
  headers: {
    Authorization: "Bearer 'MY_API_KEY'",
  },
});

в моих ResultDetails. js файл:

const [results, setResutls] = useState([]);
  const [errorMessage, setErrorMessage] = useState("");
  const searchApi = async (searchTerm) => {
    // wait for a reponse to get back once it does with some data we asign that data to the reponse variable
    try {
      const reponse = await nytimes.get("/articlesearch", {
        params: {
          //limit: 50,
          q: searchTerm, // q is term
          //
        },
      });
      setResutls(reponse.data.docs); //docs
    } catch (err) {
      setErrorMessage("Something went wrong");
    }
  };
  // bad code
  //searchApi("pasta");
  useEffect(() => {
    searchApi("covid");
  }, []);

я использую <Text>{results.length}</Text> чтобы узнать, получил ли я какие-либо результаты назад. когда я console.log (err) в блоке catch я получаю это:

Request failed with status code 404
- node_modules\axios\lib\core\createError.js:3:19 in <global>
- node_modules\axios\lib\core\settle.js:14:6 in settle
- node_modules\axios\lib\adapters\xhr.js:57:8 in handleLoad
- node_modules\event-target-shim\dist\event-target-shim.js:818:39 in EventTarget.prototype.dispatchEvent
- node_modules\react-native\Libraries\Network\XMLHttpRequest.js:566:23 in setReadyState
- node_modules\react-native\Libraries\Network\XMLHttpRequest.js:388:25 in __didCompleteResponse
- node_modules\react-native\Libraries\vendor\emitter\EventEmitter.js:190:12 in emit
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:436:47 in __callFunction
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:111:26 in __guard$argument_0
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:384:10 in __guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:110:17 in __guard$argument_0
* [native code]:null in callFunctionReturnFlushedQueue

1 Ответ

0 голосов
/ 04 мая 2020

Используя этот код, вы можете вызывать API NYT, используя данные, отправленные вами в области комментариев. Я перечисляю все тезисы от API

import React, { useEffect, useState } from 'react';
import { View, Text } from 'react-native';

import axios from 'axios';

export default function Home() {
  const [docs, setDocs] = useState([]);

  async function loadAPI() {
    const response = await axios.get(
      'https://api.nytimes.com/svc/search/v2/articlesearch.json?q=election&api-key=h1TylVtDCbyqnZZWgBXfGhU0lXQr7Cw1'
    );

    setDocs(response.data.response.docs);
  }

  useEffect(() => {
    loadAPI();
  }, []);

  return (
    <View>
      {
        docs.map((article, index) => 
          <Text key={index}>
            {article.abstract}
          </Text>
        )
      }
    </View>
  );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...