Использование обертки для API в angularjs - PullRequest
0 голосов
/ 16 октября 2018

вызов 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...