def process(self):
"""Process an incoming request to the Farfetchd server."""
# Get site from channel
self.site = self.channel.site
# Set various default headers
self.setHeader(b"Content-Type", b"application/vnd.api+json")
self.setHeader(b"Server", "Farfetchd v%s" % FARFETCHD_API_VERSION)
self.setHeader(b"Date", http.datetimeToString())
# Resource Identification
self.prepath = []
self.postpath = list(map(http.unquote, self.path[1:].split(b'/')))
log.msg("postpath is %s" % self.postpath)
log.msg("self.resource is %s" % self.resource)
#requested_resource = self.resource.getChildForRequest(self)
requested_resource = resource.getChildForRequest(self.resource, self)
try:
requested_resource = self.site.getResourceFor(self)
#self.render(requested_resource)
log.msg("Requested resource is %s" % requested_resource)
log.msg("Requested resource entities are %s" % requested_resource.listEntities())
if requested_resource:
if requested_resource.responseType:
log.msg("Request will be handled by %r" % requested_resource.__class__.__name__)
self.checkRequestHeaders()
#requested_resource.render(self)
self.render(requested_resource)
else:
self.setResponseCode(http.NOT_FOUND)
self.write(b"No such resource")
except:
self.processingFailed(failure.Failure())
if not self.finished:
self.finish()
评论列表
文章目录