Cannot access API explorer on localhost

Refresh

December 2018

Views

14.1k time

17

I'm trying to build an Endpoints application, but am new to Google App Engine.

As I understand it, there's some kind of API Explorer included in the SDK that should let me test/verify my API -- the docs say: "Test the API backend in the Google APIs Explorer by navigating to http://localhost:8080/_ah/api/explorer". But I can't find any documentation of what API Explorer actually is, does, or looks like.

In any case, when I try to hit that URL, I get immediately redirected to https://developers.google.com/apis-explorer/?base=http://localhost:8080/_ah/api#p/, which tells me nothing useful, and seems like it must be an error of some kind.

The devappserver logs say:

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

for whatever that's worth.

Here's my 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

Is there something else I'm supposed to be doing to set this up?

11 answers

0

У меня была такая же проблема, но оказалось, что я был с указанием неправильный порт на локальном хосте. Когда сервер Dev (s) запуск журнала определяет три дискретных портов на локальном хосте:

INFO 2015-07-26 03: 46: 56023 api_server.py:172] Запуск сервера API по адресу: // локальный: 35714

INFO 2015-07-26 03: 46: 56027 dispatcher.py:186] Запуск модуля "по умолчанию" работает по адресу: // локальный: 8080

INFO 2015-07-26 03: 46: 56028 admin_server.py:118] Запуск администратора сервера по адресу: // локальный: 8000

Вопрос заключается в том, что я пытался использовать порт для сервера апи, но вы должны просто использовать порт для модуля по умолчанию.

Это работает: HTTP: // локальный: 8080 / _ah / API / исследователь (мне нужно нажать на экран в хроме и позволяют небезопасных сценарии, потому что URL-адрес не зашифрован)

4

URL для API Explorer, это правильно, но есть некоторые вопросы (по-видимому, не все решены), где API Проводник не правильно перечисляют свои API.

Как сравнение того , как это должно выглядеть https://developers.google.com/apis-explorer/ является API Explorer , для API , Google, гораздо больше интерфейсов , чем вы обычно принимающих себя, но только , чтобы дать вам представление о том, что вы должны увидеть: список интерфейсов и деталей для каждого API при нажатии на него.

Обходное , который обычно работал, чтобы явно добавить название и версию API к URL, так что, так как ваш API называется scrnxSyncс версией v1ссылка должна показать вам методы , которые вы определили для API и позволяете вызывать эти методы:

https://developers.google.com/apis-explorer/?base=http://localhost:8080/_ah/api#p/scrnxSync/v1/

7

Если вы используете браузер Chrome, просто сделать HTTPS в URL для HTTP. Он работал для меня.

http://apis-explorer.appspot.com/apis-explorer/?base=http://localhost:8080/_ah/api#p/

1

Если вы работаете в AppEngine от GWT DevMode вам необходимо изменить порт в базовом параметре, чтобы соответствовать тому, что вы видите в консоли, для меня это 8888:

http://apis-explorer.appspot.com/apis-explorer/?base=http://localhost:8888/_ah/api#p/

2

Я тоже новичок в GAE Endpoints, и у меня была такая же проблема. В моем случае, у меня был эта ошибка из-за того , обработчик 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
3

Быстрое исправление: Открыть ссылку: http://apis-explorer.appspot.com/apis-explorer/?base=http://localhost:8080/_ah/api#p/ в Firefox, а затем нажмите на значок безопасного подключения на панели навигации, а затем нажмите кнопку отключить защиту. Вы должны быть в состоянии видеть ваши интерфейсы

пс; Не забудьте отредактировать 8080 с номером порта

8

Что-то изменилось, и теперь вы должны начать Chrome определенным образом, чтобы использовать API проводника на сервере разработки LOCALHOST

вот ссылка на информацию от Google.

Но для меня это до сих пор не исправить с помощью API проводника с локальным Dev сервером.
Я считаю , что возможно временное решение для запуска Chrome с флагом «--allow-приработки незащищенной-контента»
О MacOs в терминале перспективе это:

/ Applications / Google \ Chrome.app/Contents/Mac/Google \ Chrome --user-данные реж = тест --allow-приработка незащищенного-контент

0

Проблема заключается в том, что ваш файл питон не может найти импорт для:

from protorpc import remote

Поэтому использовать терминал, пропустите GUI, перейдите в каталог SDk Appengine и поставить свой проект там. Для макинтош это:

/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/
4

Я попробовал все выше в хроме и ничего не работает для меня, но с помощью Firefox, я просто нажмите на замок в левой части строки URL-адреса и отключить безопасность. Это сделало трюк для меня, ура !! : D

2

Я знаю, что это не совсем та же проблема, но у меня было сообщение «Вы исследуете API, описанное или подается через HTTP вместо HTTPS. Это небезопасно и может быть заблокирован вашим браузером. Чтобы это исправить, настроить TLS прокси для API. кроме того, вы можете сказать, ваш браузер, чтобы разрешить активное содержимое через HTTP на этом сайте (на Chrome, нажмите на экран в строке URL), но это не улучшит безопасность или отклонить это сообщение.»

При нажатии на значок щита в адресной строке Chrome сделал это для меня.

0

Для меня это очень просто опечатка в app.yaml. Если у вас есть такая же проблема, это может быть просто это просто:

Вместо того, чтобы (что правильно):

- url: /_ah/spi/.*
  script: services.application

Я кладу:

- url: /_ah/api/.*
  script: services.application

Изменение апи обратно СПИ сделал трюк.