Hiện tại tôi đang xây dựng rất nhiều API nhỏ tại nơi làm việc. Nhiều dự án trong số này chia sẻ một số logic điều khiển cơ bản. Có cách nào để thêm chúng vào một gói nuget và chỉ sử dụng chúng trong khi khởi động?
Ví dụ: như thêm Mvc:Chia sẻ Bộ điều khiển MVC mặc định
IApplicationBuilder app;
....
app.UseMvc;
app.UseBasicApiVersionController();
Ý tưởng là chúng tôi có điểm cuối phiên bản trong tất cả các dịch vụ nhỏ của chúng tôi.
Ví dụ:
http://url/version
lợi nhuận { "phiên bản": "1.0.0"}
Làm thế nào tôi làm điều này vào một gói NuGet?
Vì vậy, tất cả các nhà phát triển chỉ phải thêm 1 dòng mã để thêm điểm cuối này vào dịch vụ vi mô của họ? Chúng tôi đang sử dụng lõi dotnet.
Đừng giúp để tạo ra các gói NuGet nó tự :)
Tôi đoán cho việc bắt đầu là một cái gì đó tương tự như sau:
public static IApplicationBuilder UseBasicApiVersionController(this IApplicationBuilder app)
{
if (app == null)
throw new ArgumentNullException("app");
..... // What should I do?
return app;
}
* Chỉnh sửa:
Nếu bạn thêm một điều khiển để NuGet gói dự án nó sẽ được phát hiện tự động. Nhưng đó không phải là chức năng tôi muốn.
Tôi có thể có 10 dịch vụ cần bộ điều khiển đó. Trong khi có 1-2 dịch vụ mà chỉ muốn có logic điều khiển phiên bản khác. Ví dụ. Khách hàng đang đối mặt với ứng dụng không nên có điểm cuối "/ phiên bản".
Đó là lý do tại sao tôi muốn trong khi khởi động để sử dụng app.UseBasicApiVersionController();
Là phương pháp thay thế: điều gì về việc tạo mẫu dự án mặc định với bộ điều khiển mặc định của bạn. Hoặc chỉ là một dự án. Sau đó bạn chỉ có thể sao chép repo và có thể bắt đầu với mọi thứ bạn cần. Bạn thậm chí có thể ngã ba/phân nhánh dự án đó để tạo ra các điểm khởi đầu khác nhau cho các loại dịch vụ nhỏ khác nhau. – Marco
@Marco> Đã nghĩ về điều đó. Nhưng nếu chúng ta trong tương lai thay đổi logic cho cách hoạt động của điểm cuối, thì chúng ta sẽ phải đi vào tất cả các dự án của chúng ta và sửa nó. Ví dụ: Ngay bây giờ chúng tôi chỉ cần số phiên bản. Nhưng sau đó chúng ta có thể cần nhãn: Aplha/beta/release. Nó sẽ được tốt đẹp chỉ có một gói nuget để cập nhật thay vì mở tất cả các dự án di sản và thêm logic mới cho bộ điều khiển mặc định. – Kiksen
Bạn cũng có thể sử dụng tiêm phụ thuộc. Bạn có thể cung cấp lớp trình định dạng url của một số loại chấp nhận tất cả dữ liệu động mà bạn cần để tạo một url máy khách hợp lệ. – Silvermind