[.Net Core] Run 1 website/api dưới dạng Domain trên Local

Giả sử bạn có một hệ thống như sau

Front-end app sẽ sử dụng 3 APIs

  • Test.Api1
  • Test.Api2
  • Test.Api3

và 3 APIs này sẽ connect đến 3 DB khác nhau.

Trong quá trình Develop front-end bạn nhận ra rằng. Để Front-end chạy được thì mình phải open Visual Studio lên để chạy 3 API lên một lúc. Điều này thực sự rất mắc công và bất tiện.

Thay vào đó bạn chỉ cần Pusblish 3 Api đó ra 3 folder mình tạm đặt tên như sau

  • Api1
  • Api2
  • Api3

Sau khi publish thì trong 3 folder ở trên sẽ xuất hiện các file dll. như sau

  • Api1/Test.Api1.dll
  • Api2/Test.Api2.dll
  • Api3/Test.Api3.dll

2. Start API

Bạn mở cmd/powersell lên cd tới các folder Api1, Api2, Api3 và run các câu lệnh theo thứ tự từng folder như sau

  • folder Api1: dotnet Test.Api1.dll –urls=http://localhost:501
  • folder Api2: dotnet Test.Api2.dll –urls=http://localhost:502
  • folder Api3: dotnet Test.Api3.dll –urls=http://localhost:503

Như vậy 3 Api đã luôn luôn chạy sẵn sàng cho bạn ở 3 port mình đã định sẵn là 501,502,503 rùi đấy. Front-end chỉ cần change config trỏ tới đúng 3 domain đó là được.

Như vậy đã xong chưa nhỉ? Ahaha, vẫn chưa xong. Vẫn có 1 vấn đề ở đây là nếu mình để localhost thì nhìn vào mình sẽ chẳng nhớ nổi api đó tên gì và làm nhiệm vụ gì đúng không.

Bây giờ mình sẽ chỉ cho các bạn cách tạo 1 domain fake dưới local để đặt tên cho từng api nhé.

Bây giờ mình muốn ánh xạ 3 api của mình thành 3 domain như sau

  • api1 => application.api.com:501
  • api2 => user.api.com:502
  • api3 => file.api.com:503

Mình vào C:\Windows\System32\Drivers\etc\hosts thêm vào các dòng như sau

127.0.0.1 application.api.com
127.0.0.1 user.api.com
127.0.0.1 file.api.com

Sau đó bạn lưu lại (phải cần quyền Admin để lưu file này)

Sau đó bạn chạy lại bước 2. Nhưng thay vì localhost bạn đổi thành như bên dưới

  • folder Api1: dotnet Test.Api1.dll –urls=http://application.api.com:501
  • folder Api2: dotnet Test.Api2.dll –urls=http://user.api.com:502
  • folder Api3: dotnet Test.Api3.dll –urls=http://file.api.com:503

Như vậy là nhìn vào config ở front-end thấy dễ hiểu hơn rồi đúng không.

Hết chưa nhỉ? => Vẫn còn

Nếu đi từng folder run thủ công như này thì cũng tốn time quá. Có cách nào nhanh hơn không?

=> Tạo 1 file .bat để nó automate cái này cho mình là được thôi. Các bạn tự ngâm cứu nhé.

F G+ T

tuandph

Khởi đầu với .NET từ năm 2013 đến nay. Hiện tại mình đang làm full-stack developer. Yêu thích lập trình & chia sẽ kiến thức. Thời gian rảnh thường làm những tool vui vui và viết lách kể lệ sự đời.