要从API获取不同的数据,我应该使用不同的请求还是一次获取更改变量的单次访问?
我已经浏览了互联网,答案/建议几乎全都指向PHP,而且我不太了解这种语言。因此,我在这里寻求建议/答案。
到目前为止,这是我的代码:
//fetching movie
fetchMovie = (name) =>{
const API = '&api_key=72049b7019c79f226fad8eec6e1ee889';
let movieAPI = '';
//if the length of the movies is equal to zero fetch default search
if( this.state.movies.length === 0 ){
movieAPI = "https://api.themoviedb.org/3/discover/movie?api_key=72049b7019c79f226fad8eec6e1ee889&sort_by=popularity.desc&page=1";
}else{
//search the movie name
movieAPI = "https://api.themoviedb.org/3/search/movie?page=1&query=" + name + API;
}
//make request
const req = new Request(movieAPI, {
method: 'GET',
cache: 'default'
});
fetch(req).then(response =>{
return response.json();
}).then(data =>{
//if data fetched result is greater than 0
if(data.results.length > 0){
this.setState({
movies: data.results
});
}
}).catch(err => {
console.log("ERROR: " + err);
})
}
现在解释一下我想理解的是:
从上面的代码中可以看到,我只能执行默认请求数据或按名称进行操作。现在,如果我想获取其他查询,则应该为每个查询编写不同的代码,还是重新使用制作代码,因此:
movieAPI = "https://api.themoviedb.org/3/"+ variable +"/movie?api_key=72049b7019c79f226fad8eec6e1ee889&date="+ date +"&name=" +name + "&otherQuery=" + query ;
最佳答案
这实际上取决于您的应用将如何处理这些数据。
我建议您为应用将获取的每种数据类型创建多个功能,如下所示:
function fetchMovieByName(name){ ... }
function fetchMovieListByDate(beginDate, endDate, sort, page){ ... }
function fetchPopularMovieList(sort, page){ ... }
function fetchTopRatedMovieList(sort, page){ ... }
它将更干净,更容易理解您的代码。
如果您想减少请求数量,则可以获取列表,然后将其存储并在客户端上进行工作以进行搜索/过滤等。