feature(rest) read: add optional dataType
refactor(rest) delete