Trước hết, chúng tôi đã tạo một mẫu dự án WebApi trống. Mẫu dự án này không có kết nối với chính MasaFramework. Blog của chúng tôi chỉ sử dụng gói MiniApi của MasaFramework.
- tạo nên
Asp.NET Core trống
mẫu dự án
- Tên dự án
MFMiniApi
- Xem hình ảnh để biết thông tin khác, hủy bỏ
Https
Cấu hình, bạn cũng có thể chọn,
-
Đây là một mẫu dự án trống.
-
Cài đặt Masa MiniApi.
Tìm kiếm Masa.Contrib.Service.MinimalAPIs. Vui lòng chú ý chọn phiên bản phát hành. Vì 1.0 chưa được phát hành nên trước tiên hãy sử dụng phiên bản xem trước.
-
Cài đặt Swagger.
Tìm kiếm Swashbuckle.AspNetCore và cài đặt nó.
-
Sử dụng MasaMiniApi.
Sửa đổi mã Program.cs.
sử dụng Microsoft.OpenApi.Models; var builder = WebApplication.CreateBuilder(args); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(tùy chọn => { tùy chọn.SwaggerDoc("v1", new OpenApiInfo { Tiêu đề = "API của tôi", Phiên bản = "v1" }); }); var app = builder.AddServices(); app.UseSwagger(); app.UseSwaggerUI(tùy chọn => { tùy chọn.SwaggerEndpoint("/swagger/v1/swagger.json", "API của tôi V1"); }); await app.RunAsync();
Tạo thư mục Dịch vụ rồi tạo DemoService.cs.
Mã nội bộ:
không gian tên MFMiniApi.Service; lớp công khai DemoService : ServiceBase { public string PostAsync() { return "Nó có thành công không?"
-
Bắt đầu dự án và triển khai dịch vụ đăng ký Api thông qua MiniApi.
Chức năng MasaMiniApi:
- Nhóm dịch vụ: Viết các dịch vụ API cho các dịch vụ khác nhau
Dịch vụ
ở giữa
- Định tuyến ánh xạ tự động: hỗ trợ các tiêu chuẩn RESTful
API tối thiểu rất nhẹ và rất đơn giản để viết. Tuy nhiên, vì điều này, nó cũng mang đến cho chúng ta một số vấn đề về mã hóa. Chúng ta hãy xem sự khác biệt giữa phương pháp viết của API tối thiểu gốc và phương pháp viết của API tối thiểu do Masa cung cấp. .
Viết bản địa.
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); var user = new User() { Id = id, Name = "Tony" }; return Task.FromResult(Results.Ok(user)); }); app.MapPost("/api/v1/users", ([FromBody] UserRequest request)=> { // việc cần làm: Thêm logic người dùng return Task.FromResult(Results.Accepted()); }); MapDelete("/api/v1/users/{id}",(Guid id)=> { // việc cần làm: xóa trả về logic của người dùng Task.FromResult(Results.Accepted()); }); app.MapPut("/api/v1/users/{id}",(Guid id, [FromBody] EditUserRequest request)=> { //todo: Sửa đổi người dùng Trả về logic Task.FromResult(Results.Accepted()); app.Run();
MasaMiniApi:
Tạo UserService.cs và đăng ký tự động trường hợp sử dụng.
using Microsoft.AspNetCore.Mvc; namespace MFMiniApi.Service; public class UserService : ServiceBase { /// /// Get: /api/v1/users/{id} /// public Task GetAsync(Guid id) { // việc cần làm: Không thể thay đổi var user = new User() { Id = id, Name = "Tony" }; return Task.FromResult(Results.Ok(user)); } /// /// Post: /api/v1/users /// public Task AddAsync([FromBody] UserRequest request) { // việc cần làm: Không thể thay đổi return Task.FromResult(Results.Accepted()); } /// /// Xóa: /api/v1/users/{id} /// public Task DeleteAsync(Guid id) { //todo: Không thể thực hiện hành động return Task.FromResult(Results.Accepted()); } /// /// Put: /api/v1/users/{id} /// public Task UpdateAsync(Guid id, [FromBody] EditUserRequest request) { //todo: Không thể thực hiện hành động return Task.FromResult(Results.Accepted()); } }
UserService.cs, đăng ký thủ công ca sử dụng.
public class UserService : ServiceBase { public UserService() { RouteOptions.DisableAutoMapRoute = true;//Dịch vụ hiện tại vô hiệu hóa định tuyến đăng ký tự động App.MapGet("/api/v1/users/{id}", GetAsync App.MapPost() " /api/v1/users", AddAsync); App.MapDelete("/api/v1/users/{id}", DeleteAsync); App.MapPut("/api/v1/users/{id}", UpdateAsync); } public Task GetAsync(Guid id) { // việc cần làm: Truy vấn thông tin người dùng var user = new User() { Id = id, Name = "Tony" }; return Task.FromResult(Results.Ok(user) } public Task AddAsync([FromBody] UserRequest request) { //todo: Thêm logic người dùng return Task.FromResult(Results.Accepted()); } public Task DeleteAsync(Guid id) { //todo: Xóa người dùng Trả về logic Task.FromResult(Results.Accepted()); } public Task UpdateAsync(Guid id, [FromBody] EditUserRequest request) { //todo: Sửa đổi trả về logic của người dùng Task.FromResult(Results.Accepted());
Cấu hình toàn cầu của MasaMiniApi.
Tên tham số |
Mô tả thông số |
giá trị mặc định |
TắtAutoMapRoute |
Tắt định tuyến bản đồ tự động |
SAI |
Tiền tố |
tiền tố |
api |
Phiên bản |
Phiên bản |
v1 |
Id tự động thêm |
Liệu tuyến đường có chứa {Id} hay không, ví dụ: /api/v1/user/ |
ĐÚNG VẬY |
Số nhiều hóa tên dịch vụ |
Có bật tính năng số nhiều của tên dịch vụ hay không |
ĐÚNG VẬY |
Nhận Tiền tố |
Được sử dụng để xác định loại phương thức hiện tại là Lấy hỏi |
Danh sách mới { "Lấy", "Chọn", "Tìm" } |
Tiền tố bài viết |
Được sử dụng để xác định loại phương thức hiện tại là Bưu kiện hỏi |
Danh sách mới { "Đăng", "Thêm", "Chèn lên", "Tạo", "Chèn" } |
Đặt Tiền Tố |
Được sử dụng để xác định loại phương thức hiện tại là Đặt hỏi |
Danh sách mới { "Đặt", "Cập nhật", "Sửa đổi" } |
Xóa Tiền tố |
Được sử dụng để xác định loại phương thức hiện tại là Xóa bỏ hỏi |
Danh sách mới { "Xóa", "Loại bỏ" } |
Vô hiệu hóaTrimMethodPrefix |
Tắt tính năng xóa tiền tố phương thức (ở trên Lấy 、 Bưu kiện 、 Đặt 、 Xóa bỏ tiền tố được yêu cầu) |
SAI |
Bản đồHttpPhương pháp choKhông khớp |
Sau khi tiền tố tên phương thức không khớp với phương thức yêu cầu, tuyến sẽ sử dụng HttpMethod được chỉ định để bắt đầu yêu cầu. |
ủng hộ Bưu kiện 、 Lấy 、 Xóa bỏ 、 Đặt Swagger không hỗ trợ phương pháp này và không thể hiển thị API bình thường. |
Hội đồng |
Được sử dụng để quét cụm nơi đặt dịch vụ |
MasaApp.GetAssemblies() (Bộ sưu tập hội toàn cầu, mặc định cho bộ sưu tập hội miền hiện tại) |
Trình xử lý tuyến đường |
dựa trên Trình xử lý tuyến đường Ủy quyền có thể được sử dụng để xác thực quyền, CORS, v.v. |
vô giá trị |
Cấu hình trong dịch vụ.
|
|
|
|
Tên tham số |
Mô tả thông số |
Giá trị mặc định (null nếu không được chỉ định) |
|
BaseUri |
địa chỉ gốc |
|
|
Tên dịch vụ |
Tên dịch vụ |
|
|
Trình xử lý tuyến đường |
Ủy quyền dựa trên RouteHandlerBuilder có thể được sử dụng để xác thực quyền, CORS, v.v. |
|
|
RouteOptions(đối tượng) |
Cấu hình định tuyến cục bộ |
|
|
|
TắtAutoMapRoute |
Tắt định tuyến bản đồ tự động |
|
Tiền tố |
tiền tố |
|
|
Phiên bản |
Phiên bản |
|
|
Id tự động thêm |
Liệu tuyến đường có chứa {Id}font> hay không, ví dụ: /api/v1/user/ |
|
|
Số nhiều hóa tên dịch vụ |
Có bật tính năng số nhiều của tên dịch vụ hay không |
|
|
Nhận Tiền tố |
Được sử dụng để xác định loại phương thức hiện tại là Lấy hỏi |
|
|
Tiền tố bài viết |
Được sử dụng để xác định loại phương thức hiện tại là Bưu kiện hỏi |
|
|
Đặt Tiền Tố |
Được sử dụng để xác định loại phương thức hiện tại là Đặt hỏi |
|
|
Xóa Tiền tố |
Được sử dụng để xác định loại phương thức hiện tại là Xóa bỏ hỏi |
|
|
Vô hiệu hóaTrimMethodPrefix |
Tắt tính năng xóa tiền tố phương thức (ở trên Lấy 、 Bưu kiện 、 Đặt 、 Xóa bỏ tiền tố được yêu cầu) |
|
|
Bản đồHttpPhương pháp choKhông khớp |
Nếu phương thức yêu cầu không khớp với tiền tố tên phương thức, tuyến đường sẽ sử dụng HttpMethod được chỉ định để bắt đầu một yêu cầu. Phương thức này không được Swagger hỗ trợ và API không thể hiển thị bình thường. |
|
|
Tài liệu MiniApi
Khung MASA (masastack.com)。
Đây là địa chỉ tài liệu chính thức. MasaFramework cung cấp rất nhiều gói không có bất kỳ sự phụ thuộc mạnh mẽ nào và có thể được sử dụng riêng biệt trong các dự án.
Được rồi, các trường hợp sử dụng của MasaMiniApi được giới thiệu ở đây.
Chia sẻ từ mã thông báo.
Nhóm trao đổi kỹ thuật: 737776595.
Cuối cùng, bài viết này về cách sử dụng `MasaMiniApi` trong các dự án hiện có? Nếu bạn muốn biết thêm về cách sử dụng `MasaMiniApi` trong các dự án hiện có? Vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!