Java client for Rest API
== UPDATE ==
The old job link didn't work, so I have updated the project description to included all the details.
I'd like a Java client for the REST API documented here: http://apidocs.beyonic.com - the java client would provide an object oriented interface for interacting with the API and would translate responses into native java objects.
The API closely models stripe's API (https://stripe.com/docs/api) with a few differences, so the stripe java client code (https://github.com/stripe/stripe-java) is a good starting point when designing the structure.
Both sites have Ruby, Php and Python documentation that show how the clients should be used. The stripe documentation includes Java documentation as well.
The client has only 4 methods/objects currently. They're mostly consistent, but as the documentation shows, there are some subtle differences.
JSON responses should be parsed into generic dictionary (hash-map) like objections in most cases, but should be wrapped in intelligent objects, so that you could, for example, run a PaymentResponseObject.update() method on the payment response object that'd call the API to update the object. This would mainly be for "update" (PATCH) functionality
Also interested in having unit tests / automated tests and ensuring high (80%+) code coverage.
Also interested in designing in such a way that new objects can be added easily later, by inheriting from base objects.
Option A for costing: Design from scratch (or using the stripe API client as a starting point)
Option B for costing: Attempt to clean up this code, from a previous job: https://github.com/beyonic/beyonic-java
The job was almost finished, but the following tasks remain:
1) Clean up the code to match our other API clients and documentation more closely
2) Write/complete the tests for the job, and write out clear instructions for running the tests. We aim for 80% test code coverage.
3) Setup instructions for using something like https://code.google.com/p/beanshell2/ to test the .jar in an interactive session
4) Setup and document release via maven and gradle
5) Add two more objects (Collections and CollectionRequest)
6) Add some minor functionality to the Payment object
7) Make sure the package usable as an android/mobile package as well as a web-app package.
In addition, we're looking for a maintainer of the package.
Every couple of months we add some functionality to the API that requires some minor updates to the package. I'd like to have someone I can ask to turn these updates around in a week or so, and have then do it, and also update the tests and make sure nothing's broken.
From time to time there may also be bug fixes.
The way it'd work is that I'd add you to our bug/issue queue and assign the user stories to you, and you'd estimate the time that it'd take. Once we agreed on the time/cost, you'd work on it, get the code checked in, update the release process and get paid.