Here We Go Again, SOA And API - We Have Already Done This!
This is another story that came to mind while listening to the last episode of Traffic and Weather. As John and Steve were talking about the API definition format Swagger switching from Reverb to SmartBear (thanks for shout-out about my Swagger post), they were discussing how Microsoft is using Swagger as part of platform operations, and made sure and reminded us listeners that all this has been done before. Bringing up a never-ending theme in the world of APIs, that we just can't seem to shake loose.
When people bring this up, what do they mean? Yes, modern API definitions like Swagger, are very much like earlier incarnations of WSDL and WADL. Ok. What now?
- We shouldn’t do it? It won’t work? Don’t even bother with Swagger?
- We should learn from history, and earlier efforts, and make sure we don't same mistakes?
- We should be scared of Swagger, and run for the hills, hide in a bunker?
- We should all switch back to SOAP and use WSDL?
- You just like to tell me I'm wrong, and has nothing to do with technology?
Why I bring this up, is because more often than not, most of these conversation lean towards the first response — don’t even bother, except you don’t really know because people who state “we’ve already done this”, often leave it open ended, offering no constructive criticism. Some even close it with, this is nothing new! Ok, so what then? How does that impact my decision making, now.
I guess, for me, I step back at look at how this applies to the rest of my world. Do we do this with all other trends in our lives? We already did short skirts, why do we gotta do them again? I heard on NPR the other day that open office plan was invented by the Germans in the 1950s, and proven in-effective by the 1970s, and here in this decade we are doing again. Don’t you know we’ve already done that? C’mon. Sheesh. Aren't there endless things we've already done in the past that didn't work, and we try them again in a different context, with potentially different results?
In the end, the argument holds no weight for me. So what if we’ve already done this, or it is nothing new. I had a shitload of WSDLs laying around in 2003, and now in 2015 I have a butt-load of Swagger laying around--in the end I'm optimistic for more meaningful tooling to emerge. Tell me some practical tip that was applied back in the good ol SOA days that I can use today, don’t tear down what I do today. If Swagger isn’t for you, cool, tell me what is. Tell me how you are solving defining your APIs, mocking servers, collaborating and iterating around the API designs in your world, how you generate server side code, or client side code, and setup your testing, monitoring, and QA, or maybe providing a discovery service, visualization, and IDE tools — the fact that we’ve already done this, means nothing. We’ve already done a lot of things.
P.S. I really wish I could import my shitload of Swagger 2.0 specs I having laying around in Runscope, but I have to generate Swagger 1.2, import into Postman, generate post man collections, and then import into my Runscope account. Sheesh! ;-)