2016-07-24 24 views
1

Ich bin mit einem Problem in Endpunkt konfrontiert. Ich verwende Google App Engine auf dem lokalen Computer. Ich versuche, einen Endpunkt api zu machen. Die API wird erfolgreich erstellt, aber wenn ich den Explorer öffne und meine API auswähle, geben Sie einige Parameter ein. Es gibt keine Antwort zurück. Als Reaktion sagte es 404 Google App Engine Endpunkte API Python

hier nicht

gefunden ist der Code:

api.py

import endpoints 
import protorpc 

from ModelClasses import test 


import main 

@endpoints.api(name="test",version="v1",description="testingapi",hostname="login-test-1208.appspot.com") 
class testapi(protorpc.remote.Service): 



    @test.method(name="userinsert",path="userinsert",http_method="POST") 
    def userinsert(self,request): 

     qr = test() 
     qr.user = request.user 
     qr.passw = request.passw 

     qr.put() 
     return qr 


app = endpoints.api_server([testapi],restricted=False) 

ModelClasses.py

from endpoints_proto_datastore.ndb import EndpointsModel 
from google.appengine.ext import ndb 



class test(EndpointsModel): 

    user = ndb.StringProperty(required=True) 
    passw = ndb.StringProperty(required=True) 

app.yaml

application: ID 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: yes 

handlers: 
- url: /favicon\.ico 
    static_files: favicon.ico 
    upload: favicon\.ico 


- url: /static 
    static_dir: static 

- url: /stylesheets 
    static_dir: stylesheets 

- url: /(.*\.js) 
    mime_type: text/javascript 
    static_files: static/\1 
    upload: static/(.*\.js) 


- url: /_ah/spi/.* 
    script: api.app 

libraries: 
- name: webapp2 
    version: latest 
- name: jinja2 
    version: latest 

- name: endpoints 
    version: latest 

- name: pycrypto 
    version: 1.0 

enter image description here

enter image description here

Sie können die Anfrage und Antwort in Bildern.

Jede Hilfe wäre willkommen.

+0

Nur um zu verdeutlichen: Testen Sie die API, die auf localhost ausgeführt wird, oder haben Sie die API bereits für App Engine bereitgestellt? Wenn Sie auf localhost laufen, sollten Sie den Parameter 'hostname' entfernen, der sowieso optional ist, um sicherzustellen, dass die Anfragen tatsächlich an localhost gesendet werden. – Scarygami

+0

Vielen Dank für Ihre Antwort, ich verwende es auf localhost. –

+0

Lass mich das versuchen. –

Antwort

1

@Scarygami Antwort ist korrekt. Ich muss den Hostnamen entfernen, da ich ihn auf dem lokalen Host verwende.

+0

Ich glaube nicht, dass du jemals einen Hostnamen brauchen solltest. – saiyr