我正在使用Web Api和Angular JS處理單頁應用程序。我想抓住一個偉大的水療應用程序的所有最佳做法。是將WebApi作爲獨立項目託管的最佳做法
我想知道的是,將Web Api項目作爲獨立項目託管的最佳實踐,或者只包含在同一個項目中以及您的spa。
謝謝
我正在使用Web Api和Angular JS處理單頁應用程序。我想抓住一個偉大的水療應用程序的所有最佳做法。是將WebApi作爲獨立項目託管的最佳做法
我想知道的是,將Web Api項目作爲獨立項目託管的最佳實踐,或者只包含在同一個項目中以及您的spa。
謝謝
我認爲最好的辦法是讓SPA成爲單獨的項目,甚至更好的不同的存儲庫,因爲這更加靈活並且支持許多不同的開發/部署方案,特別是隨着項目變得更大。
我個人開始使用混合文件方法,並在項目超出了Todos示例的大小後的幾天移至單獨的Repos方法。
有一些獨立的項目的利弊/回購是:
在另一方面,我想不出將SPA作爲WebApi子文件夾的好處,除非是爲了使複雜度降至最低的非常小的項目。
+1。要增加一個,隨着你的發展,你的API可能會有更多的客戶,而SPA將只是其中的一個。所以,因爲你會保持iphone/android代碼來分離代碼庫,這同樣適用於你的SPA。 –
我很遺憾讓他們參與同一個項目。如果你使用CI/CD來部署它開始變得混亂。告訴您的項目使用/ app文件夾作爲開發工具,然後使用根目錄進行分段/生產工作,但很快就會變得複雜。我將SPA移植到自己的項目中。我現在可以刪除所有的OWIN中間件,並讓我的WebApi項目完成它主要的目標。 – trevorc
我發現將SPA包含在WebAPI項目中更容易。我總是把SPA代碼放在一個單獨的文件夾中(我總稱它爲「app」),並告訴WebAPI在你點擊WebAPI網站的根URL時在該文件夾中加載「index.html」文件。爲了提供靜態文件,我使用OWIN和FileSystems和StaticFiles插件。
我知道,問題不是「如何」實現它,但如果您決定使用OWIN,這可能對您有用。這段代碼告訴OWIN(這樣的WebAPI)到哪裏找「的index.html」和靜態(CSS,JS ...)文件)
builder.UseDefaultFiles(new DefaultFilesOptions()
{
RequestPath = new PathString(),
DefaultFileNames = new List<string>() { "index.html" },
FileSystem = new PhysicalFileSystem(@".\app")
});
builder.UseStaticFiles(new StaticFileOptions()
{
RequestPath = new PathString(),
FileSystem = new PhysicalFileSystem(@".\app")
});
從技術上講,它甚至不需要一個項目。我更喜歡使用崇高而不是Visual Studio for Angular。 –