Web Services

Enforce Web API version compatibility with Sinatra filters

Versioning in APIs is vital if you want to control the lifecycle, rather than it controlling you. If you are using Sinatra to do routing for your Web API, then you can easily stuff all the version compatibility testing into one place - a filter - and not have to propagate it through all your routes. Follow the gist to see the code.

https://gist.github.com/987247

Ruby Ireland Talk 10 May 11

On May 10, I’ll be giving a talk on Constructing Web APIs with Rack, Sinatra and MongoDB at the monthly Ruby Ireland presentation gig. It will take place at Seagrass in Portobello, Dublin. Kickoff is at 7pm.

Full details, with maps, links and a rash promise of free food from Kevin Noonan, can be found in this posting to the Ruby Ireland group. You will need to sign up for the nosebag.

I aspire to having the talk slides up on Slideshare beforehand - this topic may be old hat to some of you hard-core Ruby types, but it’s relatively new and interesting to me, and may be so to others. In any case we’ll be looking at some new stuff, in the case of MongoDB and having some fun with it.

Bí ann nó bí chearnóg, mar a deirtear.

Hope to see you there.

Xcake - Web Services with Sinatra and Heroku

On Feb 8, I gave a talk at the local Xcake monthly meetup at the Science Gallery in Dublin. These meetings are predominantly loaded with mobile developers, with a worthy smattering of other creative professionals. The talk was on Web services, and how easy it can be to lash something together to test your mobile application development. Many of the mobile dev shops interact with client data through a web service, and making your own local copy with test data can give you a speed advantage in getting your (client's) app to market. The talk uses Ruby, Sinatra and Heroku as the core tech behind a RESTafarian style of service, with persistence and a public deployment.

The good news is that neither the bucket of tar nor the sack of feathers was required by the audience, there was a distinct lack of torches/pitchforks, et cetera. As a result I've posted the slides on Slideshare. They are mostly composed of screengrabs and codedumps, so make sure you view the presenter notes, in which I have expanded on the sparsely populated slides themselves. You can get the sample code on GitHub. I'll buy beers for anyone who implements simple database authentication and sends me a successful pull request :)

Note: I've spotted some rendering weirdness with Chrome - if you can't see the slides, try another browser, or hit the download button.

Developing Silverlight clients for CXF using JAX-WS Tools

I just found out that the eclipse4SL, a development environment for creating RIAs with Microsoft Silverlight, is using JAX-WS Tools for Apache CXF. In the linked how-to, the guys show how to develop a Silverlight client that accesses a Java Web service. Nice!

CXF Tools in WTP 3.1M5

The JAXWS project in the WebTools incubator has made its way into the light of day on the latest and greatest 3.1M5 release update site. Point your Eclipse update site manager to http://download.eclipse.org/webtools/milestones to get the plug-ins. One thing to note is that while this release uses the most recent I-build of the WTP frameworks, the code is intended to work with the Eclipse 3.4.1 release too.

When you access the update site, you should see the CXF Web Services (Incubator) feature available in the site listing.

cxfservices

Thanks to David Williams for setting up the build and Shane Clarke for the awesome code construction!

Celtix Enterprise

IONA, the company I work for, has just released an Open Source bundle called Celtix Enterprise. It's a collection of Open Source elements geared towards helping you create your distributed SOA infrastructure -- we've integrated and tested these.

So where's the return? IONA is doing the for-pay training, consultancy and support for this product. Check it out and let me know what you think.

celtix_ent_components.jpg

Release the Hounds!

Or, in this case, the incubating projects. Apache Yoko incubator has published an M1 release. Yoko (no, I don't know why it's called that) is a fast Java CORBA server which can be used in Open Source JVM and JEE implementations. Hot on it's heels, it looks like the Apache CXF (yes, I know why it is called that - don't ask) is gearing up to an imminent 2.0-M1 release. CXF should be very interesting to people who are doing JAX-WS service development - I have been using it myself in another project and it has worked very well.

Back in the SOA Tools Platform project we're adding UI support for JAX-WS service development and we are testing against CXF to make sure that we are generating the correct classes and dealing with the JAX-WS and other annotations in the right way.