# PTT 新版本中台應用層開發筆記 --- ###### 此版本是 ASP .NET Core MVC 版本的文件 ###### 維護人 提莫 ###### tags: `Ptt App` ###### 位置: [主目錄](https://hackmd.io/@twbbs/Root)/Asp版本中台應用層 ###### 提供前端資料 demo 用站台: [Swagger API](https://bbsmid.azurewebsites.net/Swagger) ## 待著手開發項目 1. 規劃與Pichu版本中介底層(中台對內資料存取原生BBS層) [Go 版 API](http://173.255.216.176:5000/) 同步開發。 2. 實作自然人認證 3. 實作AOTP認證 ## 系統 Q&A 中台架構圖-整體 ![中台架構圖-整體](https://i.imgur.com/5PjqTS9.png) 中台架構圖-細部架構 ![中台架構圖-細部架構](https://docs.microsoft.com/zh-tw/dotnet/architecture/modern-web-apps-azure/media/image5-12.png) 中台應用層-資料流可擴展結構 ![中台應用層-資料流可擴展結構](https://docs.microsoft.com/zh-tw/azure/architecture/reference-architectures/app-service-web-app/images/scalable-web-app.png) 中台應用層-專案結構 ![中台應用層-專案結構](https://docs.microsoft.com/zh-tw/dotnet/architecture/modern-web-apps-azure/media/image5-3.png) MVC-TO-DB ![MVC-TO-DB](https://raychiutw.github.io/2019/%E9%9A%A8%E6%89%8B-Design-Pattern-4-Repository-%E6%A8%A1%E5%BC%8F-Repository-Pattern/RepositoryUnitOfWorkBetter.png) Clean Architecture 水平層檢視 ![Clean Architecture 水平層檢視](https://docs.microsoft.com/zh-tw/dotnet/architecture/modern-web-apps-azure/media/image5-8.png) 1. Q:資料來源? A:在原本 bbs 未退役前,暫時: 中介底層提供原生 BBS 相關資料, matadata (MongoDB) 提供符合 APP 所需要的新功能附加資料 --> 未來將整合為一個資料來源 將原生BBS視為storage,就像是 Azure storage 的 file storage. 2. Q:Table Schema 如何規劃? A:請參考20210109_Schema文件 2. Q:中台應用層與中台底層溝通方式? A:使用標準 RESTful API ## 後續待議事項 1. 認證架構(有資源再處理): 使用 JWT。 使用中台應用層的 View 來處理 (希望 app 跟 web 流程一致,但切版可以不同) 或是使用 Identity Server, 可能有部分權限需由中台底層 2. 認證功能(有資源再處理) * 帳號註冊認證流程 * 舊帳號真實使用者驗證流程 * 舊帳號找回流程 * 忘記密碼流程 * 忘記帳號流程 * 更換信箱流程 * 帳號多層級認證流程 * 手機驗證流程 ## 相關文件 1. [PTT APP規劃](https://docs.google.com/spreadsheets/d/11E3_P9_I1io4bAyzDYsl6Dh81h-IGZFhddU6rijdAno/edit#gid=0) 2. [PTT 後端系統協定](https://docs.google.com/document/d/18DsZOyrlr5BIl2kKxZH7P2QxFLG02xL2SO0PzVHVY3k/edit#) 3. [PTT 新版本開發筆記](https://hackmd.io/UYIN7B3WRkqdjlRm6B1lKw) 4. [後端站台](https://ptt-app-dev-codingman.pichuchen.tw/) --- ## 歷史貢獻者 * 感謝 ASKA 作為專案起步,著手進行出版開發。