2017-02-21 27 views
1

我有一個Web應用程序,我們現在正在爲其添加API。稍後添加API時重構Web App代碼

我正在尋找在此過程中記住的最佳實踐。

我正在考慮以下因素:

  • 幹:避免冗餘(儘可能)。例如,處理表單提交的代碼的一部分。 有些部分僅適用於Web表單提交,但與等效的API Post調用無關。我正在考慮將Post處理程序背後的通用代碼模塊化。我必須補充說,Web窗體和API的處理程序類是不同的。我正在創建一個有着共同方法的第三課。這第三個類將由兩個處理程序類(以及它們的其他基類,多重繼承)繼承。

  • 我是否應該重構代碼,使Web表單的'Post'處理程序方法反過來調用API Post方法?

謝謝。

回答

0

我認爲這種情況的具體情況會因個案而異,但我最近做了類似的事情,我將分享我的想法。

這是我如何組織我的處理程序,所以我不重複自己:

class MyHandler(webapp2.RequestHandler) 
    class ApiHandler(MyHandler): 
     class Ajax(ApiHandler): # Ajax calls on my website 
     class V0(ApiHandler): # V0 of my REST API for third parties 
    class WebHandler(MyHandler): 
     class HomePage(WebHandler): 
     class OtherPage(WebHandler): 

我增加了很多,可以由子類用於實用方法。例如,MyHandler有一個write_json方法,因爲它在很多地方使用,並且ApiHandler有一個process_json方法,因爲它只用於API。

我認爲避免重複一次post方法調用另一個post方法是不好的主意。相反,我認爲它會讓你的代碼更清潔,以便在模型級別進行重構。

+0

謝謝傑夫。 您是否使用webapp2作爲API處理程序?你不是在使用端點嗎? – user362953

+0

我使用了webapp2。我想我看了一下終端,但是使用webapp2很容易,我不想花時間學習新的東西。我認爲端點更適合那些還沒有應用程序引擎應用程序的人(但我可能是錯的)。 –