a generic ReST client