0

エンドポイント API からサーバーにデータを入れようとしていますが、POST 要求を呼び出すと、理解できないエラーが発生します。

私のメッセージクラス、特別なことはありません:

# -*- coding: utf-8 -*-

from protorpc import messages

class UserCreateResponseMessage(messages.Message):
    """With this message we say if user put to the server was ok"""
    success = messages.BooleanField(1, default=False)

class UserCreateRequestMessage(messages.Message):
    """With this message we pass data to put into the server"""
    phone_number = messages.StringField(1, required=True)
    e_mail = messages.StringField(2, required=True)    
    password = messages.StringField(3, required=True)
    name = messages.StringField(4)
    birth_year = messages.IntegerField(5, required=True)
    birth_month = messages.IntegerField(6, required=True)
    birth_day = messages.IntegerField(7, required=True)

私のAPI、フィールドをユーザーに入れて保存しようとするメソッドが1つだけのクラス:

# -*- coding: utf-8 -*-

from google.appengine.ext import endpoints
from protorpc import remote

from whis_api_messages import UserCreateResponseMessage
from whis_api_messages import UserCreateRequestMessage
from models import User

@endpoints.api(name='whis_api', version='v1',
               hostname='whisper-by-easierelephant.appspot.com',
               description='Whis API')
class WhisApi(remote.Service):
    """Class which defines Whisper API v1."""
    @endpoints.method(UserCreateRequestMessage, UserCreateResponseMessage,
                      http_method='POST',
                      path='users',
                      name='users.create')
    def users_create(self, request):
      """get the data and call to put the user in the database"""      
      user = User(parent = models.userbook_key())

      user.phone_number = request.phone_number           
      user.e_mail = request.e_mail     
      user.password = request.password
      user.name = request.name
      user.date_of_birth = datetime.date(year=request.birth_year,     month=request.birth_month, day=request.birth_day)
      user.profile_picture_name = 'empty'

      user.put()

      return UserCreateResponseMessage(success=True)

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

私の app.yaml:

application: whisper-by-easierelephant
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /_ah/spi/.*
  script: whis_api.app
  secure: always

- url: /.*
  script: main.app
  secure: always 

libraries:
- name: webapp2
  version: latest
- name: pycrypto
  version: latest

APIエクスプローラーから実行しようとすると、次の応答が返されます。

503 Service Unavailable

- Show headers -

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "backendError",
    "message": "Internal Server Error"
   }
  ],
  "code": 503,
  "message": "Internal Server Error"
 }
}

本当に何が起きているのか分からず、本当に困っています。私はエンドポイントに慣れていないので、あらゆるアドバイスや推奨事項をいただければ幸いです。

4

1 に答える 1

1

問題は、ファイル 'models' と 'datetime' を whis_api.py にインポートする必要があることでした。

エクスプローラーからアプリを実行したときにアプリで何が起こっているかを確認するには、https://appengine.google.comに移動し、アプリケーションをクリックしてから [ログ] をクリックすると、実行中に発生したエラーの詳細バージョンが表示されます。サーバー。

于 2013-09-06T05:59:47.383 に答える