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