What is the difference between RTC Work Item JAVA API and REST API?
Accepted answer
There are two flavors of HTTP API's ... those that are OSLC-based, and those that are not.
The OSLC-based HTTP API's have the advantage that you can use them to talk to a wider range of servers (any server that supports OSLC).
The advantage of the Java API's are that they cover the full product functionality, but some of the Java API's are not public, which means that there is a higher risk that they may change in a subsequent release.
So the general guidance would be use the OSLC-based HTTP API's when you can, but if the functionality you need is not available there, then use the non-OSLC-based HTTP API's when you want to use HTTP, and use the Java APIs when you want to use Java.
Comments
Thank you. Can you explain a little bit about the non-OSLC-based HTTP API? I thought RTC only provides the OSLC-based HTTP API and Java API. Were you actually referring to the REST API?
There are RTC HTTP APIs that are not defined by OSLC. For example, all of the RTC SCM APIs used by the RTC web client fall in this category, because there is not yet an approved OSLC API for the SCM domain.
Note: I personally am not a fan of the term "REST API". It originally was a well defined term (as originally defined by Roy Fielding in his dissertation: http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm ... I encourage everyone to read that chapter before using the term "REST" :-), but has since then has become more of a label that anyone feels free to use to say that their protocol is "good". On the other hand, the terms "Java API", "HTTP API", and "OSLC API" are well defined, so I personally stick to those terms.
1 vote
Thank you, Sir!