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é.