Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
public async Task<IList<Car>> GetCarsAsync(){ var response = await _client.GetAsync($"{_settings.Uri}{_settings.CarBaseUri}"); response.EnsureSuccessStatusCode(); var result = await response.Content.ReadFromJsonAsync<IList<Car>>(); return result;}public async Task<IList<Car>> GetCarsByMakeAsync(int id){ var response = await _client.GetAsync($"{_settings.Uri}{_settings.CarBaseUri}/bymake/{id}"); response.EnsureSuccessStatusCode(); var result = await response.Content.ReadFromJsonAsync<IList<Car>>(); return result;}public async Task<Car> GetCarAsync(int id){ var response = await _client.GetAsync($"{_settings.Uri}{_settings.CarBaseUri}/{id}"); response.EnsureSuccessStatusCode(); var result = await response.Content.ReadFromJsonAsync<Car>(); return result;}public async Task<IList<Make>> GetMakesAsync(){ var response = await _client.GetAsync($"{_settings.Uri}{_settings.MakeBaseUri}"); response.EnsureSuccessStatusCode(); var result = await response.Content.ReadFromJsonAsync<IList<Make>>(); return result;}Вызов HTTP-метода POST
Метод для добавления записи
CarPOSTCarpublic async Task<Car> AddCarAsync(Car entity){ var response = await PostAsJson($"{_settings.Uri}{_settings.CarBaseUri}", JsonSerializer.Serialize(entity)); if (response == null) { throw new Exception("Unable to communicate with the service"); } return await response.Content.ReadFromJsonAsync<Car>();}Вызов HTTP-метода PUT
Метод для обновления записи
CarPUTCarCarpublic async Task<Car> UpdateCarAsync(int id, Car entity){ var response = await PutAsJson($"{_settings.Uri}{_settings.CarBaseUri}/{id}", JsonSerializer.Serialize(entity)); response.EnsureSuccessStatusCode(); return await response.Content.ReadFromJsonAsync<Car>();}Вызов HTTP-метода DELETE
Последний добавляемый метод предназначен для выполнения НТТР-метода
DELETEpublic async Task DeleteCarAsync(int id, Car entity){ var response = await DeleteAsJson($"{_settings.Uri}{_settings.CarBaseUri}/{id}", JsonSerializer.Serialize(entity)); response.EnsureSuccessStatusCode();}Конфигурирование служб
Создайте в каталоге
ApiWrapperAutoLot.ServiceServiceConfiguration.csusingusing Microsoft.Extensions.Configuration;using Microsoft.Extensions.DependencyInjection;Сделайте класс открытым и статическим, после чего добавьте открытый статический расширяющий метод для
IServiceCollectionnamespace AutoLot.Services.ApiWrapper{ public static class ServiceConfiguration { public static IServiceCollection ConfigureApiServiceWrapper( this IServiceCollection services, IConfiguration config) { return services; } }}