def processRESTRequest(requestString)
    ret = nil
    request = requestString.dup
    request.gsub!("//","ESCAPED/")
    requestParts = request.split('/')
    requestParts.each{|part| part.gsub!("ESCAPED/","//") }
    applicationName = nil
    applicationDbid= nil
    tableName = nil
    tableDbid = nil
    requestType = ""
    
    requestParts.each_index{|i|
      if i == 0
        dbid = findDBByName(requestParts[0].dup)
        if dbid
          applicationDbid= dbid.dup # app/
          applicationName = requestParts[0].dup
          ret = "dbid:#{applicationDbid}"
        elsif QuickBase::Misc.isDbidString?(requestParts[0].dup) and getSchema(requestParts[0].dup)
          tableDbid = requestParts[0].dup # dbid/
          tableName = getTableName(tableDbid)
          ret = "table:#{tableName}"
        else
          ret = "Unable to process '#{requestParts[0].dup}' part of '#{requestString}'." 
        end
      elsif i == 1
        if applicationDbid
          getSchema(applicationDbid)
          tableDbid = lookupChdbid(requestParts[1].dup)
          if tableDbid # app/chdbid/
            tableName = requestParts[1].dup
            ret = "dbid:#{tableDbid}"
          else
            getSchema(applicationDbid.dup)
            tableDbid = lookupChdbid(applicationName.dup)
            if tableDbid # app+appchdbid/
              tableName = applicationName 
              ret, requestType = processRESTFieldNameOrRecordKeyRequest(tableDbid,requestParts[1].dup)
            else
              ret = "Unable to process '#{requestParts[1].dup}' part of '#{requestString}'." 
            end  
          end
        elsif tableDbid
          ret, requestType = processRESTFieldNameOrRecordKeyRequest(tableDbid,requestParts[1].dup)
        else
          ret = "Unable to process '#{requestParts[1].dup}' part of '#{requestString}'." 
        end        
      elsif (i==2 or i == 3) and ["keyFieldValue","recordID"].include?(requestType)
        fieldValues = ret.split(/\n/)
        fieldValues.each{|fieldValue|
          if fieldValue.index("#{requestParts[i].dup}:") == 0
            ret = fieldValue.gsub("#{requestParts[i].dup}:","")
            break
          end
        }
      elsif i == 2 and tableDbid
        ret, requestType = processRESTFieldNameOrRecordKeyRequest(tableDbid,requestParts[2].dup)
      else
        ret = "Unable to process '#{requestString}'." 
      end  
    }
    ret
  end
def processRESTRequest(requestString)
    ret = nil
    request = requestString.dup
    request.gsub!("//","ESCAPED/")
    requestParts = request.split('/')
    requestParts.each{|part| part.gsub!("ESCAPED/","//") }
    applicationName = nil
    applicationDbid= nil
    tableName = nil
    tableDbid = nil
    requestType = ""
    
    requestParts.each_index{|i|
      if i == 0
        dbid = findDBByName(requestParts[0].dup)
        if dbid
          applicationDbid= dbid.dup # app/
          applicationName = requestParts[0].dup
          ret = "dbid:#{applicationDbid}"
        elsif QuickBase::Misc.isDbidString?(requestParts[0].dup) and getSchema(requestParts[0].dup)
          tableDbid = requestParts[0].dup # dbid/
          tableName = getTableName(tableDbid)
          ret = "table:#{tableName}"
        else
          ret = "Unable to process '#{requestParts[0].dup}' part of '#{requestString}'." 
        end
      elsif i == 1
        if applicationDbid
          getSchema(applicationDbid)
          tableDbid = lookupChdbid(requestParts[1].dup)
          if tableDbid # app/chdbid/
            tableName = requestParts[1].dup
            ret = "dbid:#{tableDbid}"
          else
            getSchema(applicationDbid.dup)
            tableDbid = lookupChdbid(applicationName.dup)
            if tableDbid # app+appchdbid/
              tableName = applicationName 
              ret, requestType = processRESTFieldNameOrRecordKeyRequest(tableDbid,requestParts[1].dup)
            else
              ret = "Unable to process '#{requestParts[1].dup}' part of '#{requestString}'." 
            end  
          end
        elsif tableDbid
          ret, requestType = processRESTFieldNameOrRecordKeyRequest(tableDbid,requestParts[1].dup)
        else
          ret = "Unable to process '#{requestParts[1].dup}' part of '#{requestString}'." 
        end        
      elsif (i==2 or i == 3) and ["keyFieldValue","recordID"].include?(requestType)
        fieldValues = ret.split(/\n/)
        fieldValues.each{|fieldValue|
          if fieldValue.index("#{requestParts[i].dup}:") == 0
            ret = fieldValue.gsub("#{requestParts[i].dup}:","")
            break
          end
        }
      elsif i == 2 and tableDbid
        ret, requestType = processRESTFieldNameOrRecordKeyRequest(tableDbid,requestParts[2].dup)
      else
        ret = "Unable to process '#{requestString}'." 
      end  
    }
    ret
  end
Returns table or record values using REST syntax. e.g. -
 puts processRESTRequest("8emtadvk/24105") # prints record 24105 from Community Forum
 puts processRESTRequest("8emtadvk") # prints name of table with dbid of '8emtadvk'
 puts qbc.processRESTRequest("6ewwzuuj/Function Name") # prints list of QuickBase Functions