API Catalog
The API Catalog lists available resources. It should be called every time the security context changes.
 
John Deere's REST API uses hyperlinks to help clients navigate resources and discover possible actions or additional data. The starting place for clients is the API Catalog, which lists the available resources and should be retrieved every time the security context changes.
 
For example, before obtaining an OAuth Token, clients should retrieve the API Catalog and reference the oauthRequestToken, oauthAuthorizeRequestToken, & oauthAccessToken relationships:
 
GET https://apicert.soa-proxy.deere.com/platform/
Accept: application/vnd.deere.axiom.v3+json
Authorization: OAuth realm="",oauth_timestamp="1376256657", oauth_nonce="xgJFr4", oauth_consumer_key="com.deere.demo", oauth_version="1.0", oauth_signature_method="HMAC-SHA1", oauth_signature="TL054eykIBbVnSkbZqg2i4OrgLQ%3D"
 
200 OK
Date: Sun, 11 Aug 2013 21:30:56 GMT
X-Deere-Elapsed-Ms: 15
Transfer-Encoding: chunked
Content-Language: en-US
Content-Type: application/vnd.deere.axiom.v3+json;charset=UTF-8
{
  "links":[
   {
    "rel":"oauthRequestToken",
    "uri":"https://apicert.soa-proxy.deere.com/platform/oauth/request_token"
   },
   {
    "rel":"oauthAuthorizeRequestToken",
    "uri":"https://my.deere.com/consentToUseOfData?oauth_token={token}"
   },
   {
    "rel":"oauthAccessToken",
    "uri":"https://apicert.soa-proxy.deere.com/platform/oauth/access_token"
   }
  ]
}
 
Obtaining the OAuth Token changes the security context, since requests are now made in the context of both the client application and the end user. After obtaining the OAuth Token, request the API Catalog again.
 
GET https://apicert.soa-proxy.deere.com/platform/
Accept: application/vnd.deere.axiom.v3+json
Authorization: OAuth realm="",oauth_timestamp="1376259606",oauth_nonce="in6ytW", oauth_consumer_key="com.deere.demo", oauth_token="413fb748-6338-4a7d-832a-8789dc3aac67",oauth_version="1.0",oauth_signature_method="HMAC-SHA1", oauth_signature="nmyiYfI9722HgIzFsCesKduggHQ%3D"

200 OK
Date: Sun, 11 Aug 2013 22:20:07 GMT
X-Deere-Elapsed-Ms: 16
Transfer-Encoding: chunked
Content-Language: en-US
Content-Type: application/vnd.deere.axiom.v3+json;charset=UTF-8

{
  "link" : [ {     "rel" : "files",
    "uri" : "https://apicert.soa-proxy.deere.com/platform/files"
  }, {
    "rel" : "organizations",
    "uri" : "https://apicert.soa-proxy.deere.com/platform/organizations"
  } ]
}
 
When using the API Catalog, client applications should only hard-code a single URI in their application: that of the API Catalog itself. All other URIs should be discovered using hyperlinks returned by the API, navigating using the link relationships (rel).
 
John Deere will rely on this style of implementation and may change URIs other than the API Catalog without notice.