I am using Endpoints-proto-datastore created by Danny Hermes for Google App Engine.
My model looks something like this:
class Datum(EndpointsModel):
year = ndb.IntegerProperty(required=True)
value = ndb.FloatProperty(required=True)
class Variable(EndpointsModel):
name = ndb.StringProperty(required=True)
data = ndb.StructuredProperty(Datum, repeated=True)
class Indicator(EndpointsModel):
name = ndb.StringProperty(required=True)
variables = ndb.KeyProperty(kind=Variable, repeated=True)
formula = ndb.StringProperty(required=True)
And my API is something like this:
@endpoints.api(name="SomeAPI", version="v1", description="someDescription")
class SomeAPI(remote.Service):
@Indicator.query_method(query_fields=("limit", "pageToken"),
name="indicator.list",
path="indicators")
def list_indicators(self, query):
return query
The problem is that when i make the request, i get
{
"items": [
{
"name": "IndicatorName",
"variables": [
"agtkZXZ-bW9uaXRvcnITCxIIVmFyaWFibGUiBU1BVFJQDA",
"agtkZXZ-bW9uaXRvcnISCxIIVmFyaWFibGUiBFBST1AM"
],
"formula": "someFormula"
}
]
}
But getting the variable keys is not really useful for me, because that would force the client to make another request for the variables on the indicator entity. I would like to get the variable content, like this:
{
"items": [
{
"name": "IndicatorName",
"variables": [
{
"name": "some Variable",
"data": [
{
"value": 230,
"year": 2000,
},
{
"value": 250,
"year": 2005,
}
]
},
{
"name": "some other Variable",
"data": [
{
"value": 230,
"year": 2000,
},
{
"value": 250,
"year": 2005,
},
{
"value": 260,
"year": 2010,
}
]
}
],
"formula": "someFormula"
}
]
}