Не удается получить доступ к API-обозревателю на локальном хосте
Я пытаюсь создать приложение Endpoints, но новичок в Google App Engine.
Как я понимаю, в SDK есть какой-то API-интерфейс, который должен позволить мне протестировать/проверить мой API, - говорят документы: "Проверьте бэкэнд API в Проводнике API Google, перейдя на http://localhost:8080/_ah/api/explorer
"., Но я не могу найти какую-либо документацию о том, что API Explorer действительно имеет, делает или выглядит.
В любом случае, когда я пытаюсь ударить по этому URL-адресу, я сразу же перенаправляюсь на https://developers.google.com/apis-explorer/?base=http://localhost:8080/_ah/api#p/, который не говорит мне ничего полезного и похоже, что это должна быть какая-то ошибка.
Журналы devappserver говорят:
INFO 2013-07-17 17:27:54,574 server.py:593] default: "GET /_ah/api/explorer HTTP/1.1" 302 -
INFO 2013-07-17 17:27:56,099 server.py:593] default: "GET /_ah/api/static/proxy.html?jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.en.7JUwNUXMAS8.O%2Fm%3D__features__%2Fam%3DEQ%2Frt%3Dj%2Fd%3D1%2Frs%3DAItRSTO0dpKS_pssf5r3z87E6FlFvDGdOg HTTP/1.1" 200 1933
INFO 2013-07-17 17:27:56,193 server.py:593] default: "POST /_ah/spi/BackendService.getApiConfigs HTTP/1.1" 200 2342
INFO 2013-07-17 17:27:56,492 server.py:593] default: "GET /_ah/api/discovery/v1/apis HTTP/1.1" 200 576
INFO 2013-07-17 17:27:56,507 server.py:593] default: "POST /_ah/spi/BackendService.getApiConfigs HTTP/1.1" 200 2342
INFO 2013-07-17 17:27:56,583 server.py:593] default: "POST /_ah/spi/BackendService.getApiConfigs HTTP/1.1" 200 2342
INFO 2013-07-17 17:27:56,811 server.py:593] default: "GET /_ah/api/discovery/v1/apis HTTP/1.1" 200 576
INFO 2013-07-17 17:27:56,886 server.py:593] default: "GET /_ah/api/discovery/v1/apis/scrnxSync/v1/rest HTTP/1.1" 200 3365
за все, что стоит.
Здесь мой app.yaml:
application: scrnx-cloud-1
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /admin/.*
script: admin.application
login: admin
secure: always
# Endpoints handler
- url: /_ah/spi/.*
script: sync_api.application
# catchall - must come last
- url: /.*
script: default.application
admin_console:
pages:
- name: View Measurement
url: /admin/measurement
libraries:
- name: jinja2
version: 2.6
- name: markupsafe
version: 0.15
builtins:
- admin_redirect: off
- appstats: off
- deferred: off
- remote_api: on
Есть ли что-то еще, что я должен сделать, чтобы настроить это?
Ответы
Ответ 1
URL-адрес API-интерфейса API корректен, но были некоторые проблемы (видимо, не все), когда API-интерфейс API неправильно отображает ваши API.
Как сравнение того, как должно выглядеть https://developers.google.com/apis-explorer/, является API-интерфейсом API для API Google, гораздо больше API, чем обычно вы принимаете, но просто для того, чтобы дать вам представление о том, что вы увидите: список API и деталей для каждого API, как только вы нажмете на него.
Обходной путь, который обычно работал, заключается в том, чтобы явно добавить имя и версию вашего API к URL-адресу, так как ваш API называется scrnxSync
с версией v1
, эта ссылка должна показывать вам методы, которые вы определили для вашего API, и вы можете вызвать эти методы:
https://developers.google.com/apis-explorer/?base=http://localhost:8080/_ah/api#p/scrnxSync/v1/
Ответ 2
Что-то изменилось, и теперь вы должны запустить Chrome определенным образом, чтобы использовать api explorer на сервере разработки localhost
здесь ссылка для информации из Google.
Но для меня это еще не исправило использование api explorer с сервером localhost dev.
Я нахожу, что возможным обходным путем является запуск Chrome с флагом "-allow-running-insecure-content"
На MacOS в терминале выполните следующее:
/Приложения/Google\Chrome.app/Contents/Mac/Google\Chrome --user-data-dir = test --allow-running-insecure-content
Ответ 3
Если вы используете браузер Chrome, просто введите https в URL-адрес http. Это сработало для меня.
http://apis-explorer.appspot.com/apis-explorer/?base=http://localhost:8080/_ah/api#p/
Ответ 4
Я пробовал все вышеперечисленное в chrome, и ничего не работает для меня, но используя firefox, я просто нажимаю на блокировку слева от строки url и отключает защиту. Это сделало трюк для меня, ура!: D
Ответ 5
Быстрое исправление:
Откройте ссылку: http://apis-explorer.appspot.com/apis-explorer/?base=http://localhost:8080/_ah/api#p/ в firefox, затем нажмите значок безопасного подключения на панели навигации, затем нажмите на отключить защиту. Вы должны иметь возможность видеть свои API
пс; Не забудьте отредактировать 8080 с номером вашего порта
Ответ 6
Я также новичок в конечных точках GAE, и у меня была та же проблема.
В моем случае у меня была эта ошибка из-за порядка обработчиков URL в app.yaml. У меня было это так:
- url: /.*
script: core_service.application
# Endpoints handler
- url: /_ah/spi/.*
script: api_service.application
Правильный путь определяет сначала наиболее конкретные маршруты, а в конце самые общие (/.*). Вот так:
# Endpoints handler
- url: /_ah/spi/.*
script: api_service.application
- url: /.*
script: core_service.application
Ответ 7
Я знаю, что это не совсем та же проблема, но у меня появилось сообщение "Вы изучаете API, который описывается или передается через HTTP вместо HTTPS. Это небезопасно и может быть заблокировано вашим браузером. Чтобы исправить это, настройте прокси-сервер TLS для вашего API. В качестве альтернативы вы можете сообщить своему браузеру разрешить активный контент через HTTP на этом сайте (в Chrome, щелкнуть экран в строке URL), но это не улучшит безопасность или не отменит это сообщение".
Щелчок значка экрана в адресной строке Chrome сделал это для меня.
Ответ 8
Если вы используете AppEngine из GWT DevMode, вам нужно изменить порт в базовом параметре, чтобы он соответствовал тому, что вы видите на консоли, для меня это 8888:
http://apis-explorer.appspot.com/apis-explorer/?base=http://localhost:8888/_ah/api#p/
Ответ 9
Для меня это очень простая опечатка в app.yaml. Если у вас такая же проблема, это может быть просто так:
Вместо (что правильно):
- url: /_ah/spi/.*
script: services.application
Я положил:
- url: /_ah/api/.*
script: services.application
Изменение api назад к spi выполнило трюк.
Ответ 10
Проблема заключается в том, что ваш файл python не может найти импорт для:
from protorpc import remote
Поэтому используйте терминал, пропустите GUI, перейдите в каталог appengine sdk и разместите там свой проект. Для mac это:
/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/
Ответ 11
У меня была такая же проблема, но оказалось, что я указываю неправильный порт на localhost. Когда сервер dev (dev) запускается, журнал определяет три дискретных порта на localhost:
INFO 2015-07-26 03: 46: 56,023 api_server.py:172] Запуск сервера API по адресу: http://localhost: 35714
INFO 2015-07-26 03: 46: 56,027 dispatcher.py:186] Начальный модуль "по умолчанию" выполняется по адресу: http://localhost: 8080
INFO 2015-07-26 03: 46: 56,028 admin_server.py:118] Запуск сервера администратора по адресу: http://localhost: 8000
Проблема заключалась в том, что я пытался использовать порт для сервера api, но вам нужно просто использовать порт для модуля по умолчанию.
Это работает: http://localhost: 8080/_ah/api/explorer (мне нужно было щелкнуть экран в хроме и разрешить небезопасные скрипты, потому что URL-адрес незашифрован)