Error handling is one of the most procrastinated and least enjoyable parts when writing code… I mean, why should the application not always work as expected, when we’ve written it with so much passion and care, and, you know, the clients of the application always send the right requests, right?!? Unfortunately things do go wrong from time to time, and when it does we should be prepared to some extent at least… This is especially the case when writing REST APIs, because clients only get a black box with specification, having no clue what to do when the expected answer doesn’t come back, unless we do something about it…

Bottom line:  error handling is essential when designing REST APIs.

Continue Reading ...

Looking to REST in Java? Then you’ve come to the right place, because in the blog post I will present you how to “beautifully” design a REST API and also, how to implement it in Java with the Jersey framework. The RESTful API developed in this tutorial will demonstrate a complete Create,_read,_update_and_delete (CRUD) functionality for podcast resources stored in a MySql database.

Continue Reading ...

Just wanted to share some useful resources I came across, when trying to figure out how to expose errors in a RESTful API

  1.  Apigee : RESTful API Design – Second Edition
  2. StormPath
  3. API UX
  4. Wikipedia

In this post I will present a trick I used to create the responsive menu on Podcastpedia.org :

Responsive menu on Podcastpedia.org

Responsive menu on Podcastpedia.org

Octocat Source code for this post is available on Github - podcastpedia.org is an open source project.

Continue Reading ...

This is the sequel of the post CSS Preprocessors – Introducing Sass to Podcastpedia.org. If in the first part I presented some Sass-features I use to generated the CSS file for Podcastpedia.org, in this part I will present how the .css file generation process can be implemented with the help of Gulpjs.

Octocat Source code for this post is available on Github - podcastpedia.org is an open source project.

1. Set up the infrastructure

1.1. Install Node.js

Well, the first I needed to do is install Nodejs:

“Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.”[1]

Continue Reading ...