Stubbies
Stubbies

Reputation: 3124

Google Cloud Endpoints adding extra parameters

I'm using the 'endpoints-proto-datastore' library and a bit lost in how to add extra parameters to my requests.

Basically I want to add these fields [ID, token] with ID being required. Blossom.io is doing something similar, here Blossom.io Api

Here's my Post method

@Doctor.method(path='doctor', http_method='POST', name='doctor.insert')
   def DoctorInsert(self, doctor):

@Edit

Without the Proto-Datastore library:

request = endpoints.ResourceContainer(
    message_types.VoidMessage,
    id=messages.IntegerField(1,variant=messages.Variant.INT32),
    token=messages.IntegerField(2, variant=messages.Variant.INT32)
)

@endpoints.method(request, response,
                  path='doctor/{id}', http_method='POST',
                  name='doctor.insert')

How can I do the same using the proto-datastore library?

Upvotes: 0

Views: 157

Answers (1)

David Cifuentes
David Cifuentes

Reputation: 564

The way I do it is to add another property to the model decorated with @EndpointsAliasProperty and a setter. I wouldn't call it ID because it may confuse with the App Engine built-in ID.

    class Doctor(EndpointsModel):
    ...
    @EndpointsAliasProperty(
        setter=set_doctorid, property_type=messages.StringField
    )
    def doctorid(self):
        #Logic to retrieve the ID
        return doctorid

    def set_doctorid(self, value):
        #The ID will be in the value, assign and store it in your model

Upvotes: 1

Related Questions