SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST