Два подхода:
# routes: (passed to WSGIApplication)
[..snip..]
('/note/add', AddNoteHandler),
('/note/delete/(.+)', DeleteNoteHandler),
('/note/view/(.+)', ViewNoteHandler),
('/note', ListNotesHandler),
[..snip..]
.. против ..
('/note/(.*)', NoteHandler)
# which moves all the code from many RequestHandlers to one..
# ..but with a lot of branching inside, e.g.
class NoteHandler(webapp.RequestHandler):
def get(self, params):
params = params.split('/')
action = params[0]
id = params[1]
# start switching by action
def post(self, params):
params.split('/'):
# POST case
Наличие отдельных обработчиков для каждой операции CRUD на некоторых object
(в данном случае note
)приведет к тому, что в этих обработчиках будет повторяться намного больше кода, и к огромному списку маршрутов.С другой стороны, я чувствую, что у этого была бы намного более чистая, более приятная структура, чем это мог бы сделать один обработчик для всех грубых.
Есть какие-нибудь мысли по этому поводу?