code: def post(self, id=None):
          
          try:
  
              try:
                  base_object = json_util.loads(self.request.body)
              except TypeError:
                  base_object = json_util.loads(self.request.body.decode())
  
              #assert not hasattr(base_object, "_id")
  
              toa = self.request.headers.get("Caesium-TOA", None)
  
              if toa:
                  # Async create flow
                  stack = AsyncSchedulableDocumentRevisionStack(self.client.collection_name, self.settings)
  
                  revision_id = yield stack.push(base_object, toa=int(toa), meta=self._get_meta_data())
                  resource = yield stack.preview(revision_id)
  
                  if isinstance(revision_id, str):
                      self.set_header("Caesium-TOA", toa)
                      self.return_resource(resource.get("snapshot"))
                  else:
                      self.raise_error(404, "Revision not scheduled for object: %s" % id)
  
              else:
  
                  id = yield self.client.insert(base_object)
                  base_object = yield self.client.find_one_by_id(id)
  
                  self.return_resource(base_object)
  
          except ValidationError as vex:
              self.logger.error("%s validation error" % self.object_name, vex)
              self.raise_error(400, "Your %s cannot be created because it is missing required fields, see docs" % self.object_name)
          except ValueError as ex:
              self.raise_error(400, "Invalid JSON Body, check formatting. %s" % ex[0])
          except Exception as ex:
              self.logger.error(ex)
              self.raise_error()
docs: Create a new object resource
  
          :json: Object to create
          :returns: json string representation
          :rtype: JSON