我发现这个问题已经存在answer,但我觉得它过时了。从那时起,许多事情发生了变化现在有modules,cloud_endpoints和webapp2。什么应该是我的项目的良好目录结构,允许我轻松添加/修改功能。
例如,我应该能够管理:
答案 0 :(得分:3)
我首先看看模块,至少出于以下原因:
就个人而言,我坚持使用the recommended多模块应用程序结构 - 每个模块都有自己的目录,位于应用程序目录下一级:
应用程序的顶级目录将保留每个应用程序的配置(不适用于特定模块):dispatch.yaml
,cron.yaml
,index.yaml
和queue.yaml
。请注意,cron作业和任务队列定义属于此处(但没有什么能阻止您根据请求的路径将各种cron作业路由/分派到各个模块)。
我还会在应用程序的顶级目录中放置我想要以干燥方式在多个模块中共享的任何文件/目录。这些文件/目录将由模块通过在相应模块内进行符号链接来共享,以便模块在部署时获得自己的副本。可以以这种方式共享几乎可以作为单独文件或目录存在的任何:
.yaml
配置的一部分!例如:Do I need to copy `skip_files` across multiple YAML files? 最后,特定模块的推荐文件/目录结构可能还取决于模块语言/沙箱,使用的框架,开发人员的风格/偏好等。我认为不可能提供一个-size-fits-all建议,在所有情况下都是有效/可接受的。
答案 1 :(得分:0)
端点只是基本REST URL的RPC(强类型)版本,其附加优势是它们可以用于生成的客户端库。因此,端点配置和定义属于SAME目录中的模块(即移动后端),就像它们的REST对应物一样。换句话说,如果你在Module1中拥有(或将拥有)一个REST端点用于"用户登录",那么你应该使用"用户登录" module1目录中的端点。此外,如果您不喜欢符号链接方法,则可以将module1.yaml文件向上移动一级,然后整个模块可以从" common" 。目录