API-вызов в Angularjs - PullRequest
       8

API-вызов в Angularjs

0 голосов
/ 16 октября 2018

Предположим, что есть 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);
      };
    }]);

Я пробовал таким образом.Как нам создать оболочку и не включать HTTP и API?

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