title: ASP.NET web api: documenting/specifying a service
body: <p>I've been looking at <a href="http://www.asp.net/web-api" rel="noreferrer">asp.net Web Api</a>, and I like the simplicity of implementing a practical web service.</p>
  
  <p>However, how can I document/specify the interface of a service implemented like that?  For example, is there any spec I can pass on or generate to a Java guy with no .NET background that will let him easily call and consume the service?  What can I give to the javascript guy?</p>
  
  <p>Ideally, I'd like the benefits of SOAP/XSD or something like it (easy to deserialize with nicely typed objects) for the java guy, while retaining a service that's callable from a web browser too (i.e. supports non-crufy JSON).</p>
  
  <h2>Update</h2>
  
  <p>It's worth noting that since I originally posted this question, I discovered <a href="http://servicestack.net/" rel="noreferrer">ServiceStack</a> which deals with this more naturally; supporting JSON, SOAP, and WSDL out of the box for the same service, as the client chooses.  If you really want SOAP+JSON, it may be a better framework than ASP.NET Web Api.</p>