Xuất bản ASP.NET Core Web API lên Azure API Management bằng Visual Studio
Tác giả: Matt Soucoup
Trong hướng dẫn này, bạn sẽ học cách tạo một dự án ASP.NET Core web API (giao diện lập trình ứng dụng web) bằng Visual Studio, đảm bảo nó có hỗ trợ OpenAPI, sau đó xuất bản web API lên cả Azure App Service (dịch vụ ứng dụng Azure) và Azure API Management (quản lý API Azure).
Thiết lập
Để hoàn thành hướng dẫn, bạn cần có tài khoản Azure.
- Mở tài khoản Azure miễn phí nếu bạn chưa có.
Tạo dự án ASP.NET Core Web API
Visual Studio cho phép bạn dễ dàng tạo một dự án ASP.NET Core web API mới từ template (mẫu). Làm theo các hướng dẫn sau để tạo dự án mới:
- Từ menu File, chọn New > Project.
- Nhập Web API vào hộp tìm kiếm.
- Chọn template ASP.NET Core Web API và nhấn Next.
- Trong dialog Configure your new project, đặt tên dự án là WeatherAPI và nhấn Next.
- Trong dialog Additional information:
- Xác nhận Framework là .NET 6.0 (Long-term support).
- Xác nhận checkbox Use controllers (uncheck to use Minimal APIs) được chọn.
- Xác nhận checkbox Enable OpenAPI support được chọn.
- Nhấn Create.
Khám phá code
Swagger definitions (định nghĩa Swagger) cho phép Azure API Management đọc các định nghĩa API của ứng dụng. Bằng cách chọn checkbox Enable OpenAPI support khi tạo ứng dụng, Visual Studio tự động thêm code để tạo Swagger definitions. Mở file Program.cs và xem code sau:
...
builder.Services.AddSwaggerGen();
...
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(); // Được bảo vệ bởi if (env.IsDevelopment())
}
...Đảm bảo Swagger definitions luôn được tạo ra
Azure API Management cần Swagger definitions luôn có mặt, bất kể môi trường của ứng dụng là gì. Để đảm bảo chúng luôn được tạo, hãy di chuyển app.UseSwagger(); ra ngoài khối if (app.Environment.IsDevelopment()).
Code sau khi cập nhật:
...
app.UseSwagger();
if (app.Environment.IsDevelopment())
{
app.UseSwaggerUI();
}
...Thay đổi routing (định tuyến) của API
Thay đổi cấu trúc URL cần thiết để truy cập action Get của WeatherForecastController. Thực hiện các bước sau:
- Mở file
WeatherForecastController.cs. - Thay thế attribute (thuộc tính)
[Route("[controller]")]ở cấp độ class bằng[Route("/")]. Định nghĩa class sau khi cập nhật:
``csharp [ApiController] [Route("/")] public class WeatherForecastController : ControllerBase ``
Xuất bản Web API lên Azure App Service
Thực hiện các bước sau để xuất bản ASP.NET Core web API lên Azure API Management:
- Xuất bản ứng dụng API lên Azure App Service.
- Xuất bản ứng dụng ASP.NET Core web API lên instance Azure API Management service.
Xuất bản ứng dụng API lên Azure App Service
Thực hiện các bước sau để xuất bản ASP.NET Core web API lên Azure API Management:
- Trong Solution Explorer, click chuột phải vào dự án và chọn Publish.
- Trong dialog Publish, chọn Azure và nhấn nút Next.
- Chọn Azure App Service (Windows) và nhấn nút Next.
- Chọn Create a new Azure App Service.
Dialog Create App Service xuất hiện. Các trường App Name, Resource Group, và App Service Plan đã được điền sẵn. Bạn có thể giữ nguyên hoặc thay đổi các tên này.
- Nhấn nút Create.
- Sau khi app service được tạo, nhấn nút Next.
- Chọn Create a new API Management Service.
Dialog Create API Management Service xuất hiện. Bạn có thể giữ nguyên các trường API Name, Subscription Name, và Resource Group. Nhấn nút new bên cạnh trường API Management Service và nhập các thông tin cần thiết trong dialog đó.
Nhấn nút OK để tạo API Management service.
- Nhấn nút Create để tiếp tục tạo API Management service. Bước này có thể mất vài phút để hoàn thành.
- Khi hoàn thành, nhấn nút Finish.
- Dialog đóng lại và màn hình tóm tắt xuất hiện với thông tin về lần publish. Nhấn nút Publish.
Web API được xuất bản lên cả Azure App Service và Azure API Management. Một cửa sổ trình duyệt mới sẽ xuất hiện và hiển thị API đang chạy trên Azure App Service. Bạn có thể đóng cửa sổ đó.
- Mở Azure portal trong trình duyệt web và điều hướng đến instance API Management mà bạn đã tạo.
- Chọn tùy chọn APIs từ menu bên trái.
- Chọn API bạn đã tạo trong các bước trước. Nó đã được điền đầy đủ và bạn có thể khám phá xung quanh.
Cấu hình tên API đã xuất bản
Lưu ý rằng tên của API là WeatherAPI; tuy nhiên, chúng ta muốn gọi nó là Weather Forecasts. Thực hiện các bước sau để cập nhật tên:
- Thêm đoạn code sau vào
Program.csngay sauservices.AddSwaggerGen();
``csharp builder.Services.ConfigureSwaggerGen(setup => { setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Weather Forecasts", Version = "v1" }); }); ``
- Xuất bản lại ASP.NET Core web API và mở instance Azure API Management trong Azure portal.
- Làm mới trang trong trình duyệt. Bạn sẽ thấy tên của API bây giờ đã đúng.
Xác minh Web API đang hoạt động
Bạn có thể kiểm tra ASP.NET Core web API đã triển khai trong Azure API Management từ Azure portal với các bước sau:
- Mở tab Test.
- Chọn / hoặc thao tác Get.
- Nhấn Send.
Dọn dẹp
Khi bạn đã hoàn thành việc kiểm tra ứng dụng, hãy truy cập Azure portal và xóa ứng dụng.
- Chọn Resource groups, sau đó chọn resource group (nhóm tài nguyên) mà bạn đã tạo.
- Trong trang Resource groups, chọn Delete.
- Nhập tên của resource group và chọn Delete. Ứng dụng của bạn và tất cả các tài nguyên khác được tạo trong hướng dẫn này sẽ bị xóa khỏi Azure.