An Experiment in BlackBerry Development: Lessons Learned Writing PodTrapper

This article attempts to relay my experiences and lessons learned in the making of PodTrapper, my first mobile application for BlackBerry. It will cover

Must read and apply: "TOP 25 Most Dangerous Programming Errors"

Nothing really new here, but still a good reminder for architects and development teams. And nice to see this being pushed to CS curriculums.

 Via http://www.sans.org/top25errors/#s4

REST Web services resources for Java developers

Representational State Transfer (REST) is an architectural style for creating, maintaining, retrieving, and deleting resources. REST's information-driven, resource-oriented approach to building Web services can both satisfy your software's users and make your life as a developer easier.

via javaworld.com

REST Introduction

- The father of REST, Roy Fielding, dissertation on "Architectural Styles and the Design of Network-based Software Architecture"

Why REST?

- For more resources see REST Wiki, including the REST in plain English article.

Building REST Services

RESTful Service

Building Web services the REST way

Build a RESTful Web service

REST related Design Issues

Versioning REST services

Common REST mistakes

PUT or POST: the REST of the story, or see also the interesting interview with Elliotte Rusty Harold

- Asynchronous REST or Slow REST

- Instead of returning a custom object we could use the Content-Location header for the in-progress status URI of the requested operation. This URI could also use headers to provide information regarding the in-progress operation:

- Status-Code: "202 in progress" or "204 No Content" when completed or any error code

- ETag: for the operation progress status. Could be strong and still give a notion of progress

REST for Java Developers (via javaworld.com)

- Part 1 - it's about the information, stupid

- Part 2 - Restlet for the weary

- Part 3 - NetKernel

- Part 4 - The future is RESTful

REST Libraries

- Notes: 

- All of them are supporting JAX-RS, aka JSR-311, the Java API for RESTful Web Services

- And here is good presentation of JAX-RS

Restlet project

This is my favorite library, and I like the fact that it is running on GAE/J and supporting GWT

RESTEasy from JBoss.org

Jersey part of Sun's GlassFish project

CXF from Apache.org

- REST Libraries usage trend:

JAX-RS Implementations

Via GoogleVolume.com

Tools

RESTY is a simple cURL-based command line tool

rest-client is a Java-based GUI and command line tool

HTTP4E is an Eclipse HTTP client

 

Update 1: Added a libraries and tools sections.

Update 2: Added a section on design issues related to building REST services