def get(self): """ Handles a GET request. http://jsonapi.org/format/#fetching-relationships """ resources = yield from self.db.get_relatives([self.resource], [[self.relname]]) resources = resources.values() included_resources = yield from self.db.get_relatives( resources, self.request.japi_include ) # Build the document. data = serialize_many(resources, fields=self.request.japi_fields) included = serialize_many( included_resources.values(), fields=self.request.japi_fields ) meta = OrderedDict() links = OrderedDict() # Create the response self.response.headers["content-type"] = "application/vnd.api+json" self.response.status_code = 200 self.response.body = self.api.dump_json(OrderedDict([ ("data", data), ("included", included), ("meta", meta), ("links", links), ("jsonapi", self.api.jsonapi_object) ])) return None
def get(self): """ Handles a GET request. http://jsonapi.org/format/#fetching-relationships """ resources = yield from self.db.get_relatives([self.resource], [[self.relname]]) resources = resources.values() included_resources = yield from self.db.get_relatives( resources, self.request.japi_include) # Build the document. data = serialize_many(resources, fields=self.request.japi_fields) included = serialize_many(included_resources.values(), fields=self.request.japi_fields) meta = OrderedDict() links = OrderedDict() # Create the response self.response.headers["content-type"] = "application/vnd.api+json" self.response.status_code = 200 self.response.body = self.api.dump_json( OrderedDict([("data", data), ("included", included), ("meta", meta), ("links", links), ("jsonapi", self.api.jsonapi_object)])) return None
def get(self): """ Handles a GET request. This means to fetch many resourcs from the collection and return it. http://jsonapi.org/format/#fetching-resources """ # Fetch the requested resources. if self.request.japi_paginate: offset = self.request.japi_page_offset limit = self.request.japi_page_limit else: offset = self.request.japi_offset limit = self.request.japi_limit resources = yield from self.db.query( self.typename, order=self.request.japi_sort, limit=limit, offset=offset, filters=self.request.japi_filters ) # Fetch all related resources, which should be included. included_resources = yield from self.db.get_relatives( resources, self.request.japi_include ) # Build the response. data = serialize_many(resources, fields=self.request.japi_fields) included = serialize_many( included_resources.values(), fields=self.request.japi_fields ) meta = OrderedDict() links = OrderedDict() # Add the pagination links, if necessairy. if self.request.japi_paginate: total_resources = yield from self.db.query_size( self.typename, filters=self.request.japi_filters ) pagination = Pagination(self.request, total_resources) meta.update(pagination.json_meta) links.update(pagination.json_links) # Put all together self.response.headers["content-type"] = "application/vnd.api+json" self.response.status_code = 200 self.response.body = self.api.dump_json(OrderedDict([ ("data", data), ("included", included), ("meta", meta), ("links", links), ("jsonapi", self.api.jsonapi_object) ])) return None
def get(self): """ Handles a GET request. This means to fetch many resourcs from the collection and return it. http://jsonapi.org/format/#fetching-resources """ # Fetch the requested resources. if self.request.japi_paginate: offset = self.request.japi_page_offset limit = self.request.japi_page_limit else: offset = self.request.japi_offset limit = self.request.japi_limit resources = yield from self.db.query(self.typename, order=self.request.japi_sort, limit=limit, offset=offset, filters=self.request.japi_filters) # Fetch all related resources, which should be included. included_resources = yield from self.db.get_relatives( resources, self.request.japi_include) # Build the response. data = serialize_many(resources, fields=self.request.japi_fields) included = serialize_many(included_resources.values(), fields=self.request.japi_fields) meta = OrderedDict() links = OrderedDict() # Add the pagination links, if necessairy. if self.request.japi_paginate: total_resources = yield from self.db.query_size( self.typename, filters=self.request.japi_filters) pagination = Pagination(self.request, total_resources) meta.update(pagination.json_meta) links.update(pagination.json_links) # Put all together self.response.headers["content-type"] = "application/vnd.api+json" self.response.status_code = 200 self.response.body = self.api.dump_json( OrderedDict([("data", data), ("included", included), ("meta", meta), ("links", links), ("jsonapi", self.api.jsonapi_object)])) return None
def get(self): """ Handles a GET request. http://jsonapi.org/format/#fetching-resources """ # Fetch the included resources. included_resources = yield from self.db.get_relatives( [self.resource], self.request.japi_include ) # Build the response document. serializer = self.api.get_serializer(self.real_typename) data = serializer.serialize_resource( self.resource, fields=self.request.japi_fields.get(self.typename) ) included = serialize_many( included_resources.values(), self.request.japi_fields ) meta = OrderedDict() links = OrderedDict() # Put all together self.response.headers["content-type"] = "application/vnd.api+json" self.response.status_code = 200 self.response.body = self.api.dump_json(OrderedDict([ ("data", data), ("included", included), ("meta", meta), ("links", links), ("jsonapi", self.api.jsonapi_object) ])) return None
def get(self): """ Handles a GET request. http://jsonapi.org/format/#fetching-resources """ # Fetch the included resources. included_resources = yield from self.db.get_relatives( [self.resource], self.request.japi_include) # Build the response document. serializer = self.api.get_serializer(self.real_typename) data = serializer.serialize_resource( self.resource, fields=self.request.japi_fields.get(self.typename)) included = serialize_many(included_resources.values(), self.request.japi_fields) meta = OrderedDict() links = OrderedDict() # Put all together self.response.headers["content-type"] = "application/vnd.api+json" self.response.status_code = 200 self.response.body = self.api.dump_json( OrderedDict([("data", data), ("included", included), ("meta", meta), ("links", links), ("jsonapi", self.api.jsonapi_object)])) return None