Bug 845244 - links in JSON results are difficult to navigate
Summary: links in JSON results are difficult to navigate
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Operations Network
Classification: JBoss
Component: REST
Version: JON 3.1.0
Hardware: Unspecified
OS: Unspecified
high
medium
Target Milestone: ER01
: JON 3.2.0
Assignee: Heiko W. Rupp
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-08-02 12:51 UTC by Alan Santos
Modified: 2015-02-06 01:19 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-01-02 20:33:21 UTC
Type: Bug


Attachments (Terms of Use)

Description Alan Santos 2012-08-02 12:51:47 UTC
Description of problem:

When a resource is returned as JSON the associated links are modeled as an array with a 'rel' and 'href' tag. 

"links": [
            {
                "rel": "operationDefinitions",
                "href": "http://127.0.0.1:7080/rest/1/operation/definitions?resourceId=10001"
            },


While this follows the HATEOS convention it's unnecessarily tedious to navigate and discover the semantics of each link.  I can't pick a known relation; I have to iterate an array, pick the 'rel' key and evaluate. 

Though there's no standard mechanism to express links with JSON there's some consensus that the current pattern is not friendly and other patterns are available that follow HATEOS conventions and are more accessible. 

Additional info:
e.g. 
A resaonable summary of the issue and suggestions
http://caines.ca/blog/programming/json-is-under-defined-for-rest/

see HAL - the Hypertext Application Language
http://stateless.co/hal_specification.html

see this post where a facebook engineer describes their use:
http://montrics.blogspot.com/2010/05/web-linking-in-json.html

Comment 1 mark yarborough 2013-03-04 22:12:40 UTC
Heiko please comment...

Comment 2 Heiko W. Rupp 2013-03-07 12:21:28 UTC
Changed in master 1913e7e27d495

This was less than trivial, as the standard jax-rs way does not allow for this.

Links now look like this:

{
  "children": {
        "href":"http://localhost:7080/rest/resource/10001/children"
  }
}

Comment 3 Larry O'Leary 2013-09-06 14:30:13 UTC
As this is MODIFIED or ON_QA, setting milestone to ER1.

Comment 4 Mike Foley 2013-09-13 18:08:43 UTC
verified


Note You need to log in before you can comment on or make changes to this bug.