def do_GET(self): bits = urllib.unquote(self.path).split('/') try: x = None if bits[1] == "ping": self.send_response(200) self.end_headers() self.wfile.write("pong") elif bits[1] == "people": self.output_json(Person.retrieve(bits[2])) elif bits[1] == "service": self.output_json(Service.retrieve(bits[2],bits[3])) elif bits[1] == "thing": self.output_json(Thing.retrieve(bits[2])) elif bits[1] == "att": x = Att.retrieve(bits[2]) if x: self.send_response(200) self.send_header('Content-type', x.mime) self.send_header('Content-length', x.size) self.end_headers() self.wfile.write(x.body) else: self.send_response(404) self.end_headers() self.wfile.write('404 Not Found') elif bits[1] == "credential": self.output_json(Credential.retrieve(bits[2])) except IndexError: print "GET error! self:%s\n%s" % (self.path, self.headers)