Product Selector

Fusion 5.9
    Fusion 5.9

    Links API

    The Links API manages the links that represent the relationships between Fusion objects. You can see these links in the Object Explorer by pressing CMD-K or CTRL-K from any screen in the Fusion UI. You can also export and import links using the Objects API.

    Links are structured as a tuple of (subject, object, linkType). An example would be (foo, bar, dependsOn), which would read as "foo dependsOn bar".

    The possible values of linkType are as follows:

    inContextOf

    The subject exists in the context of the object, which is an app.

    In this example, the "Movie_Search" app is the context for a parser with the same name:

    {
      "subject" : "parser:Movie_Search",
      "object" : "app:Movie_Search",
      "linkType" : "inContextOf",
      "originator" : "unspecified"
    }

    hasContext

    The subject is an app that contains the object.

    In this example, an index profile exists in the context of the "Movie_Search" app:

    {
      "subject" : "app:Movie_Search",
      "object" : "index-profile:Movie_Search",
      "linkType" : "hasContext",
      "originator" : "unspecified"
    }

    dependsOn

    The subject depends on the object.

    In this example, a datasource called "web_pokeapi_co-default" depends on a parser by the same name:

    {
      "subject" : "datasource:web_pokeapi_co-default",
      "object" : "parser:web_pokeapi_co-default",
      "linkType" : "dependsOn"
    }

    supports

    The subject is depended on by the object (the reverse of dependsOn).

    In this example, a parser called "web_pokeapi_co-default" supports a datasource by the same name:

    {
      "subject" : "parser:web_pokeapi_co-default",
      "object" : "datasource:web_pokeapi_co-default",
      "linkType" : "supports"
    }

    isPartOf

    The subject is part of the object, where the object is a group.

    In this example, an aggregation called "click-signals-default" is part of a group called "signals-object-group-default":

    {
      "subject" : "aggregation:click-signals-default",
      "object" : "group:signals-object-group-default",
      "linkType" : "isPartOf"
    }

    hasPart

    The subject is a group, of which the object is a member (the reverse of isPartOf).

    In this example, an aggregation called "click-signals-default" is part of a group called "signals-object-group-default":

    {
      "subject" : "group:signals-object-group-default",
      "object" : "aggregation:click-signals-default",
      "linkType" : "hasPart"
    }

    relatesTo

    The subject relates to the object. This is a uni-directional relationship that associates two objects that have none of the relationships described above.

    For example, when recommendations are enabled for the default collection, Fusion creates a group of objects which relates to the default collection:

    {
      "subject" : "group:recommendations-default",
      "object" : "collection:default",
      "linkType" : "relatesTo"
    }

    With the exception of the relatesTo link type, links are reversible:

    • inContextOf is the reverse of hasContext (and vice versa).

    • dependsOn is the reverse of supports (and vice versa).

    • isPartOf is the reverse of hasPart (and vice versa).

    For example, here is the group of links for the signals-default collection:

    [
      {
        "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
        "object": "collection:default_signals_aggr",
        "linkType": "hasPart"
      },
      {
        "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
        "object": "spark:default_click_signals_aggregation",
        "linkType": "hasPart"
      },
      {
        "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
        "object": "collection:default",
        "linkType": "relatesTo"
      },
      {
        "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
        "object": "collection:default_signals",
        "linkType": "hasPart"
      }
    ]

    When we request the links for one of the hasPart objects shown above, we get the reverse representation:

    GET https://FUSION_HOST:8764/api/links?subject=collection:default_signals_aggr
    
    [
      {
        "subject": "collection:default_signals_aggr",
        "object": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
        "linkType": "isPartOf"
      }
    ]

    Examples

    Get links to the default collection:

    curl https://FUSION_HOST:8764/api/links?subject=collection:default

    Output:

    [ { "subject": "collection:default", "object": "index-pipeline:default", "linkType": "supports" } ]

    Create a new link:

    curl -X PUT https://FUSION_HOST:8764/api/links -H 'content-type: application/json' -d '{"linkType": "supports", "object": "index-pipeline:default", "subject": "collection:default"}'

    Output:

    { "subject" : "collection:default", "object" : "index-pipeline:default", "linkType" : "supports" }

    Delete a link:

    curl -X DELETE https://FUSION_HOST:8764/api/links?subject=collection:default