Является ли ProtoRPC API встроенным GAE для AJAX?
Следующий шаг: интерфейс ajax для приложения gae/py.
Мое приложение имеет только базовую HTML-версию, которая взаимодействует с хранилищем данных и обновляет страницу каждый раз. Все хорошо, но теперь нужен Ajax. Я попробовал какое-то решение: базовый javascript, ajax API jquery и некоторые фреймворки.
Я думаю, что нашел все, что искал в knockoutjs, но эта среда взаимодействует с сервером через формат json. Это означает, что мне нужно изучить библиотеку json и переписать все обработчики, чтобы получить и опубликовать в json. Я могу начать эту задачу, но прежде чем я хочу понять кое-что еще о API ProtoRPC.
В документе сказано, что этот API полезен также для "создания структурированных Ajax-бэкэндов", и, если я правильно понял, ответные сообщения представлены в формате json. Мои вопросы:
Это правда, что сообщения API ProtoRPC используют json?
Будет ли проблема, что все запросы / ответы проходят через ProtoRPC?
Реализовать надежную службу ProtoRPC на стороне сервера и использовать инфраструктуру на стороне клиента - это хорошая стратегия?
2 ответа
ProtoRPC поставляется с реализацией протокола передачи JSON.
Вы должны быть в состоянии построить свою логику на стороне сервера, используя ProtoRPC, и отправлять HTTP-запрос к вашим конечным точкам API с сообщениями, закодированными в JSON, как описано в обзоре ProtoRPC в официальной документации.
Knockoutjs не должен мешать, так как в документации говорится, что он не заставляет вас использовать какой-то один конкретный метод для загрузки или сохранения данных
Я просто хочу упомянуть небольшой момент об использовании ProtoRPC со стороны клиента, так как там еще не полностью разработан клиент. Основной способ заставить ProtoRPC использовать Json - просто убедиться, что ваш тип контента запроса - "application / json". В противном случае ProtoRPC может попытаться использовать двоичный формат protobuf.
Кроме того, документация для ProtoRPC немного устарела. В примерах показано использование ProtoRPC с обработчиком запросов на основе веб-приложения. Вместо этого вы должны использовать более новый обработчик на основе wsgi, особенно если вы работаете на Python 2.7.
Обработчик WSGI встроен в ProtoRPC, а исходный код находится здесь:
http://code.google.com/p/google-protorpc/source/browse/python/protorpc/wsgi/service.py
Он работает очень похоже на обработчик веб-приложений, за исключением того, что его сложно использовать с существующим приложением на основе веб-приложений.