webentwicklung-frage-antwort-db.com.de

Kann nicht auf API Explorer auf localhost zugreifen

Ich versuche, eine Endpoints-Anwendung zu erstellen, bin aber neu in Google App Engine.

Soweit ich weiß, enthält das SDK eine Art API-Explorer, mit dem ich meine API testen/überprüfen kann. In den Dokumenten heißt es: "Testen Sie das API-Backend im Google API-Explorer, indem Sie zu http://localhost:8080/_ah/api/Explorer navigieren." Ich kann jedoch keine Dokumentation darüber finden, was der API-Explorer tatsächlich ist, tut oder wie er aussieht.

In jedem Fall werde ich beim Versuch, diese URL zu erreichen, sofort zu https://developers.google.com/apis-Explorer/?base=http://localhost:8080/_ah/api#p/ weitergeleitet. , was mir nichts Sinnvolles sagt und anscheinend ein Irrtum sein muss.

Die devappserver-Protokolle sagen:

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

für was auch immer das wert ist.

Hier ist meine 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

Gibt es noch etwas, was ich tun soll, um das einzurichten?

17
c roald

Die URL für den API-Explorer ist korrekt, aber es gab einige Probleme (anscheinend nicht alle behoben), bei denen der API-Explorer Ihre APIs nicht korrekt auflistete.

Zum Vergleich, wie es aussehen sollte https://developers.google.com/apis-Explorer/ ist der API-Explorer für Google-APIs, weit mehr APIs als Sie normalerweise selbst hosten würden, aber nur um Ihnen eine zu geben Vorstellung davon, was Sie sehen sollten: eine Liste von APIs und Details für jede API, sobald Sie darauf klicken.

Eine Problemumgehung, die normalerweise funktioniert hat, besteht darin, den Namen und die Version Ihrer API explizit zur URL hinzuzufügen. Da Ihre API also scrnxSync mit Version v1 heißt, sollte dieser Link Ihnen die Methoden anzeigen, die Sie für Ihre API definiert haben, und es Ihnen ermöglichen, diese Methoden aufzurufen :

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

4
Scarygami

Etwas hat sich geändert, und jetzt müssen Sie Chrome auf eine bestimmte Weise starten, um den API-Explorer auf dem localhost-Entwicklungsserver zu verwenden

hier ist ein link zu info von google.

Aber für mich hat es immer noch nicht mit API Explorer mit localhost dev Server behoben.
Ich finde, dass eine mögliche Problemumgehung darin besteht, Chrome mit dem Flag "--allow-running-insecure-content" zu starten.
Führen Sie auf MacOs im Terminal Folgendes aus:

/ Programme/Google\Chrome.app/Contents/Mac/Google\Chrome --user-data-dir = test --allow-running-insecure-content

8
Przemek Lada

Wenn Sie den Chrome-Browser verwenden, geben Sie in der URL "http" einfach "https" ein. Es hat bei mir funktioniert.

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

7
A Paracha

Ich habe all das in Chrom versucht und nichts funktioniert für mich, aber mit Firefox klicke ich einfach in das Schloss links von der URL-Leiste und deaktiviere die Sicherheit. Das war der Trick für mich, Prost! : D

4
Andrés Muñoz

Eine schnelle Lösung: Öffnen Sie den Link: http://apis-Explorer.appspot.com/apis-Explorer/?base=http://localhost:8080/_ah/api#p/ in Firefox und klicken Sie dann auf Klicken Sie in der Navigationsleiste auf das Symbol für sichere Verbindung und dann auf Schutz deaktivieren. Sie sollten in der Lage sein, Ihre APIs anzuzeigen

ps; Denken Sie daran, 8080 mit Ihrer Portnummer zu bearbeiten

3
Jasper Kinoti

Ich weiß, dass es nicht genau das gleiche Problem ist, aber ich hatte die Meldung "Sie untersuchen eine API, die über HTTP anstelle von HTTPS beschrieben oder bereitgestellt wird. Dies ist unsicher und wird möglicherweise von Ihrem Browser blockiert. Um dies zu beheben, richten Sie ein TLS-Proxy für Ihre API. Alternativ können Sie Ihren Browser anweisen, aktiven Inhalt über HTTP auf dieser Site zuzulassen (auf Chrome klicken Sie auf das Schild in der URL-Leiste), dies verbessert jedoch nicht die Sicherheit und schließt diese Nachricht nicht aus. "

Das Klicken auf das Schildsymbol in der Adressleiste von Chrome hat es für mich getan.

2
Maxime T

Ich bin auch neu bei GAE Endpoints und hatte das gleiche Problem. In meinem Fall hatte ich diesen Fehler aufgrund der Reihenfolge der URL-Handler in der app.yaml. Ich hatte es so:

- url: /.*
  script: core_service.application

  # Endpoints handler
- url: /_ah/spi/.*
  script: api_service.application

Der richtige Weg ist, zuerst die spezifischsten Routen und am Ende die allgemeinsten (/.*) zu definieren. So was:

  # Endpoints handler
- url: /_ah/spi/.*
  script: api_service.application

- url: /.*
  script: core_service.application
2
juanesarango

Wenn Sie die AppEngine in GWT DevMode ausführen, müssen Sie den Port im Basisparameter ändern, damit er mit dem übereinstimmt, was Sie in der Konsole sehen. Für mich ist das 8888:

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

1

Das Problem ist, dass Ihre Python-Datei den Import für Folgendes nicht finden kann:

from protorpc import remote

Verwenden Sie dazu das Terminal, überspringen Sie die GUI, navigieren Sie zum Verzeichnis appengine sdk und legen Sie Ihr Projekt dort ab. Für Mac ist es:

/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/
0
Paul Moffett

Für mich ist es ein sehr einfacher Tippfehler in app.yaml. Wenn Sie das gleiche Problem haben, kann es einfach sein:

Anstelle von (was richtig ist):

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

Ich setze:

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

Ändern api zurück zu spi hat den Trick gemacht.

0
Nathan Do

Ich hatte das gleiche Problem, aber es stellte sich heraus, dass ich auf localhost den falschen Port angegeben habe. Beim Start des Dev-Servers werden im Protokoll drei diskrete Ports auf localhost angegeben:

INFO 26.07.2015 03: 46: 56.023 api_server.py:172] Starten des API-Servers unter: http: // localhost: 35714

INFO 2015-07-26 03: 46: 56,027 dispatcher.py:186] Startmodul "default" läuft unter: http: // localhost: 8080

INFO 2015-07-26 03: 46: 56,028 admin_server.py:118] Starten des Admin-Servers unter: http: // localhost: 8000

Das Problem war, dass ich versucht habe, den Port für den API-Server zu verwenden, aber Sie müssen nur den Port für das Standardmodul verwenden.

Dies funktioniert unter: http: // localhost: 8080/_ah/api/Explorer (Ich musste auf das Schild in Chrom klicken und unsichere Skripte zulassen, da die URL unverschlüsselt ist.)

0
Vaughn