2017-02-21 48 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很容易,我不想花时间学习新的东西。我认为端点更适合那些还没有应用程序引擎应用程序的人(但我可能是错的)。 –