class Patient(EndpointsModel):
user = EndpointsUserProperty(required=True, raise_unauthorized=True)
date_of_birth = EndpointsDateProperty()
age = ndb.IntegerProperty()
def calculate_age(self):
today = date.today()
birthday = self.date_of_birth
self.age = today.year - birthday.year - ((today.month, today.day) < (birthday.month , birthday.day))
def _pre_put_hook(self):
if self.date_of_birth:
self.calculate_age()
....
api_root = endpoints.api(name='ffsapi', version='vGDL',
description='API for whole app')
@api_root.api_class(resource_name="patient")
class PatientApi(remote.Service):
@Patient.method(
request_fields=('name', 'date_of_birth'),
name='insert',
path='patient',
http_method='POST')
def insert_patient(self,patient):
if patient.date_of_birth: # TODO find a better way
if patient.date_of_birth.year <1900:
raise endpoints.BadRequestException('date <= 1900')
patient.put()
return patient
@Patient.query_method(user_required=True,
query_fields=['name'],
name='query',
path='patient')
def query_patient(self,query):
return query
....
application = endpoints.api_server([api_root], restricted=False)
Ceci est mon fichier lorsque j'exécute endpointscfg.py il me dit que ce n'est pas un service ProtoRPC. J'ai essayé l'application, api_root, et ffsapi. Le code déploie bien fonctionne bien ne peut pas obtenir la compilation des bibliothèques pour fonctionner.Impossible d'obtenir des bibliothèques pour compiler des points de terminaison cloud python
Voici le fichier YAML si cela aide
application: ******(im just hiding it)
version: 1
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: .*
script: main.application
# Endpoints handler
- url: /_ah/spi/.*
script: main.application
libraries:
- name: webapp2
version: "2.5.2"
# Needed for endpoints/users_id_token.py.
- name: pycrypto
version: "2.6"
- name: endpoints
version: 1.0