I think this post is a great resource for anyone getting started on developing an API.
As mentioned in other comments, implementing all these features would be a very time consuming task. I would love to see a follow up post listing tools and services that would make implementing some of these aspects quicker.