title: REST API Validation Layer
body: <p>I would like to implement a RESTful API in order to give clients access to our internal services.</p>
  
  <p>Regarding API validation, I have two approaches in mind:</p>
  
  <ul>
  <li><p>Use external validation layer which would cover the areas exposed by the resources.</p></li>
  <li><p>Use internal business logic validators and just capture the internal exceptions and errors and convert into API friendly exceptions.</p></li>
  </ul>
  
  <p>I'm personally in favour of the first approach, but due to potential code duplication for validating properties, I was suggested the second approach, which I find kind of messy and unnecessary.
  I don't want to give access to very low level logic if the request params are not valid in the first place, for example.</p>
  
  <p>Which approach is more appropriate? Any best practices?</p>