It seems like everyone is talking about APIs lately. We can find tons of them out there. More and more cloud based services and on-premises services are exposing themselves to the outside world through APIs. Many of these systems are fairly complex, so they need a complex object model to reach their full potential. While this is easy to achieve in any object oriented programming language, it is not as easy to serialize them or to deal with them afterwards. How do these services expose such complexity to the open world and at the same time offer an easy enough way of operate with the model?