Использование API конечных точек в другом месте в механизме приложений

Я запрограммировал и протестировал свой API с помощью Proto-datastore, и теперь я готов сделать с ним что-то еще.

Помимо создания клиентской библиотеки, позволяющей приложениям взаимодействовать с API, я собираюсь создать веб-панель для службы (которая будет основана на примере гостевой книги). Это также будет построено и размещено в том же проекте App-Engine. Но я понятия не имею, как использовать API в App Engine.

Импорт API и простой вызов @Model.method() оформленных функций не сработают. Я нашел это, но мне было интересно, есть ли что-нибудь в прототипе -datastore, который я пропустил, позволит мне это сделать?


person Padraic    schedule 03.08.2013    source источник


Ответы (1)


Я делаю это так, чтобы получить доступ к конечной точке так же, как я получил бы доступ к любому другому API на основе Discovery, размещенному где-то еще, с помощью использования Клиентская библиотека API Google для Python, совместимая с конечными точками.

Обычно вы создаете клиент для одного из API Google, используя service = build(api, version, http=http), например service = build("plus", "v1", http=http), чтобы создать клиент для доступа к API Google+.

Для использования библиотеки для вашей конечной точки вы должны использовать:

service = build("your_api", "your_api_version", http=http, 
  discoveryServiceUrl=("https://yourapp.appspot.com/_ah/api/discovery/v1/"
                       "apis/{api}/{apiVersion}/rest"))

Затем вы можете получить доступ к своему API с помощью

result = service.resource().method([parameters]).execute()

Возможно, это не самый оптимальный способ, но он работает как шарм.

person Scarygami    schedule 03.08.2013
comment
Это сработало, отлично. Однако я понял, что, поскольку я размещаю эту веб-страницу в том же проекте App Engine, я могу просто импортировать models.py и напрямую обращаться к хранилищу данных... Узнал об использовании API, так что все хорошо. - person Padraic; 20.08.2013