
掌握API建模:基本概念和實踐
使用 POST /api/Products
{
"name": "Laptop",
"price": 3000
}
創建控制臺應用程序以與 API 交互。
dotnet new console -n ClientApp
cd ClientApp
2. 安裝 HttpClient
添加包以與 Web API 交互:System.Net.Http.Json
dotnet add package System.Net.Http.Json
3. 創建客戶端代碼以與 API 交互
在 中,編寫代碼以調用 API:Program.cs
// See https://aka.ms/new-console-template for more information
using System.Net.Http.Json;
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;
Console.WriteLine("Hello, World!");
HttpClient _httpClient = new HttpClient();
string apiUrl = "https://localhost:5001/api/products";
// Get all products
var products = await _httpClient.GetFromJsonAsync<Product[]>(apiUrl);
foreach (var product in products)
{
Console.WriteLine($"{product.Id}: {product.Name} - ${product.Price}");
}
// Add a new product
var newProduct = new Product { Name = "New Product", Price = 19.99M };
var response = await _httpClient.PostAsJsonAsync(apiUrl, newProduct);
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Product added successfully.");
}
// Get a product by id
var productById = await _httpClient.GetFromJsonAsync<Product>($"{apiUrl}/1");
Console.WriteLine($"{productById.Id}: {productById.Name} - ${productById.Price}");
// Update a product
var updateProduct = new Product { Id = 1, Name = "Updated Product", Price = 24.99M };
await _httpClient.PutAsJsonAsync($"{apiUrl}/1", updateProduct);
// Delete a product
await _httpClient.DeleteAsync($"{apiUrl}/2");
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
4. 運行客戶端
dotnet run
結果
Hello, World!
1: Laptop - $3000.00
Product added successfully.
1: Laptop - $3000.00
文章轉自微信公眾號@DotNet NB