Угловая фабрика js для потребления asp.net webApi

Как я могу использовать webApi в угловой фабрике js?

WebAPI

public class WarrantyController: ApiController {
 public WarrantyViewModel Get(string c, string l, string s, string cs, string productcode, string ordercode, string overrides) {
 var response = Query(new WarrantyQuery(UserContext.CreateContext(c, l, s, cs), productcode, ordercode, overrides));
 return response.Data;
 }
}

это возвращает результат json:

GET/api/shop/warranty/get/us/en/abc/19/productA/abc-123 HTTP/1.1

2 ответа

Модуль Angular Resource - действительно хороший помощник для использования Rest API.

Вы можете создать фабрику, например:

angular.module('appService', ['ngResource'])
 .factory('Warranty', function($resource) {
 return $resource('/api/warranty/');
 });

Затем введите свою фабрику в свое угловое приложение, как показано ниже:

var app = angular.module('app', ['appService']);

Наконец, вы можете получить доступ к своей фабрике в своем контроллере:

app.controller('warrantyController', function($scope, Warranty) {
 $scope.warranties = Warranty.query();
});

Все остальные операции CRUD будут автоматически добавлены в ваш объект гарантии. Для получения дополнительной информации вы можете посетить документацию ngResource


Точно так же, как вы общаетесь с любым API, используйте службу $ http.

С помощью этого вы получите краткие сокращения HTTP-глаголов:

// Returns a promise with warranty list as a resolved parameter
function getWarranties() {
 return $get('/api/warranty').then(function(resp) {
 return resp.data;
 });
}

Или вы можете использовать метод raw $http:

// Returns a promise with warranty list as a resolved parameter
function getWarranties() {
 return $http({
 url: '/api/warranty',
 method: 'get',
 // other options...
 }).then(function(resp) {
 return resp.data;
 });
}

licensed under cc by-sa 3.0 with attribution.