Я строю на Google App Engine + Python + webapp2.Часть создания современного веб-приложения требует полноценного API.Я знаю, что могу сделать это с Flask
, однако я хочу изучить возможность создания REST API на webapp2
.
В webapp2 запросы обрабатываются так:
app = webapp2.WSGIApplication([
('/post/new', CreatePost),
('/post/([a-z0-9]+)', ViewPost),
('/post/([a-z0-9]+)/edit', EditPost),
('/post/([a-z0-9]+)/delete', DeletePost)
])
Примечание: ([a-z0-9]+)
- это регулярное выражение, представляющее post_id
. Вышеуказанные обработчики запросов не придерживаются шаблона RESTful, так как запрос methods
указан в пути (/ delete, /edit / new), а не в заголовках запросов.
Является ли решение для создания одного класса обработчика, который получает все типы запросов?Например:
class PostHandler(webapp2.RequestHandler):
def get(self):
# handle GET requests
def post(self):
# handle POST requests
def put(self):
# handle PUT requests
def delete(self):
# handle DELETE requests
app = webapp2.WSGIApplication([
('/post/?', PostHandler)
])
В этом случае все пути /post
обрабатываются PostHandler.post_id
больше не используется в этом шаблоне, поскольку вместо этого он будет представлен в теле запроса.
Это правильный подход к созданию REST API с помощью webapp2?