webapp2とappengineを使用したルーティングの非常に基本的なソリューションを見つけました。ここでソリューション全体を投稿するつもりはありませんが、誰かがそれを見たいと思っている場合はお知らせください。githubに投稿してリンクを送信します。
基本的には、osを使用してハンドラーディレクトリ内のファイルを取得し、ファイルをループします。
for file in os.listdir(directory):
if file.endswith(".py") and file != '__init__.py':
非常に単純な命名規則(つまり、file_name = FileName)を使用しているため、ハンドラーディレクトリ内のファイルに基づいて、それぞれのルートを動的に作成できます。
ルーティングする必要のあるメソッドにもデコレータを使用します(つまり、URLハンドラー/メソッドはハンドラーファイルに移動し、HandlerクラスとHandler.Methodが呼び出されます)。したがって、各クラスのすべてのメソッドを取得し、クラスメソッドにデコレータによって作成された属性がある場合は、それをルーティングします。
したがって、次のようなforループ:
methods = inspect.getmembers(handlercls, predicate=inspect.ismethod)
methods = [x[1] for x in methods if hasattr(x[1], 'route')]
for method in methods:
# Set some kwargs that I can then pass to a route (i.e. handler path, method to call, etc...)
私が言ったように、そしておそらく誰もこの質問に答えなかった理由は、ソリューション全体がかなり長いので、誰かが望むなら、私はそれをGitHubに載せて、おそらく人々は追加/制御することができます。それを改善するためにそれに。