Generalizing request, validation, and submission logic to be used across different resources