вызов API Предположим, что есть 3 API.Каждый API выполняет одну и ту же задачу (чтобы дать вам информацию о погоде), но имеет различные конечные точки, как указано ниже:
API 1: может использоваться только для Индии.Имеет методы с именами requestWeather (), requestWeatherDataForWeek ()
API 2: Может использоваться только для США.Имеет методы с именем sendRequest (), weatherDataForWeek ()
API 3: Может использоваться только для Великобритании.Имеет методы с именем getWeather (), getWeatherDataForWeek ()
Выберите страну, используя раскрывающийся список.а.Выберите API в соответствии со страной.Выбор API является программным, который будет решаться в соответствии со страной, выбранной пользователем.
b.Напишите свой код так, чтобы любой API можно было использовать, не нарушая бизнес-логику.
c.Там должно быть ограничение на количество запросов, которые могут быть отправлены.Скинь ошибку если нет.количество запросов превышает лимит.
d. Не требует HTTP-вызовов или API.Просто создайте оболочку для API с указанным методом и верните несколько фиктивных значений.
weatherApp.config(function ($stateProvider,$urlRouterProvider) {
$stateProvider
.state('/', {
templateUrl: 'home.html',
controller: 'homeController'
})
.state('forecast', {
url:"/forecast",
templateUrl: 'forecast.html',
controller: 'forecastController'
})
$urlRouterProvider.otherwise("/");
});
weatherApp.service('cityService', function() {
this.city = "New York, NY";
});
weatherApp.controller('Controller',['$scope','$state',function($scope,$state){
$scope.clicked=function(){
$state.go('forecast');
};
}]);
weatherApp.controller('homeController', ['$scope', 'cityService', function($scope, cityService) {
$scope.city = cityService.city;
$scope.$watch('city', function() {
cityService.city = $scope.city;
});
}]);
weatherApp.controller('forecastController', ['$scope', '$resource', '$routeParams', 'cityService', function($scope, $resource, $routeParams, cityService) {
$scope.city = cityService.city;
$scope.days = $routeParams.days || 2;
$scope.weatherAPI = $resource("http://api.openweathermap.org/data/2.5/forecast/daily", { callback: "JSON_CALLBACK" }, { get: { method: "JSONP" }});
$scope.weatherResult = $scope.weatherAPI.get({ q: $scope.city, cnt: $scope.days });
$scope.convertToFahrenheit = function(degK) {
return Math.round((1.8 * (degK - 273)) + 32);
}
$scope.convertToDate = function(dt) {
return new Date(dt * 1000);
};
}]);
Пробовал это, но как мы можем использовать обертку для API?