Не удается получить доступ к 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

Ответ 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 сделал это для меня.

Ответ 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-адрес незашифрован)