Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Programmers only

This documentation is only designed for programmers. It is provided as is, and programmers are expected to be good enough to solve problems.

REST API in Confluence


Experimental API

Our API is subject to changes.

  • When we annotate @Public, we attempt with "best effort" to keep the API backwards-compatible for as long as possible.
    • If we want to deprecate, we will annotate with @Deprecated for a few versions, then remove it in the major version (in "platform.major.micro" versioning scheme, for example in 2.2.0).
    • We may add parameters, not remove them.
  • When we annotate @Internal, we don't even try to keep it stable, it usually changes from 1 micro version to another. Those APIs are tightly couples with the Javascript.
  • When we don't annotate, please consider it as @Internal.

How to build the URL?

The "base URL" is the address of Confluence. It could be:

  • https://confluence.example.com if there is no port, no context path and it's https.
  • http://confluence.example.com:8090/confluence if there is a port, a context path and http.

Try with {baseUrl}/admin/viewgeneralconfig.action to ensure you have the right one. In the following documentation, we will omit the base URL.

Good tip

(tick) Install and use Atlassian's REST API Browser and explore URLs inside of your Confluence / Jira application:

REST Resources

Verb and URLComments and query string arguments
GET /rest/reqs/1/requirement2/{spaceKey}

Search for requirements.

  • q = The query, using the Search Syntax.
  • spaceKey = The scope of the search. This is different from the spaceKey in the GET path. If the spaceKey in the query string isn't provided, and if the "Isolate Spaces" option is ticked in the Requirement Yogi administration, then the search will be restricted by default to the spaceKey provided in the GET path; Otherwise the spaceKey provided in the GET path has no effect.
  • offset = The pagination offset
  • limit = The pagination limit
  • order = The SQL ORDER BY clause (by default: "REQKEY ASC, BASELINE DESC")
  • includeArchived = true / false whether the archived requirements should be included. Otherwise, only current (ACTIVE) requirements are displayed.
  • baselineCondition = Do not use.
  • suggest = Do not use.
POST /rest/reqs/1/requirement2/{spaceKey}Do not use.
PUT /rest/reqs/1/requirement2/{spaceKey}Do not use.
GET /rest/reqs/1/requirement2/{spaceKey}/{key}

Get a requirement.

  • v = {integer} – Return the version of the requirement in baseline 'v'
  • expand = Use "references" if references to pages need to be expanded.
POST /rest/reqs/1/requirement2/{spaceKey}/{key}Do not use.
PUT /rest/reqs/1/requirement2/{spaceKey}/{key}Do not use.
DELETE /rest/reqs/1/requirement2/{spaceKey}/{key}Do not use.
GET /rest/reqs/1/baseline/{spaceKey}

Get the list of baselines in this space.

  • expand: Use "details" if you need to get the link to the baseline page and the number of requirements.

All other information is available in the REST API Browser.



REST API in Jira

There is no specific REST API in Jira for Requirement Yogi, but links can be added in the "Remote Issue Links" (RIL) using the REST API of Jira:

One easy way to see how Requirement Yogi creates a link is to use the "Network" panel in the developer tools of Confluence:

Example of payload:

{  
    "globalId":"applink=d17e62d1-4e84-3467-891d-2e097fc86c52&spaceKey=EX&key=REQ-001&issue=SAM-8&relationship=implements",
    "application":{  
        "name":"Confluence in space EX",
        "type":"com.playsql.requirementyogi.type"
    },
    "relationship":"implements",
    "object":{  
        "url":"http://confluence.local:1990/confluence/requirements/EX/REQ-001",
        "title":"REQ-001",
        "summary":"- Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.",
        "icon":{  
            "url16x16":"http://confluence.local:1990/confluence/download/resources/com.playsql.requirementyogi/img/requirementyogi-icon-2-x16.png",
            "title":"Requirement Yogi"
        }
    }
}
  • Fields are self-explanatory,
  • The type must be "com.playsql.requirementyogi.type",
  • The globalId must retain the same format, in the same order:
    • applink: The ID of the application link in Jira,
    • spaceKey and key: The references to the requirement,
    • issue: The Jira issue key
    • relationship: The relationship
  • This means that any change to the relationship, issue number or space must be reflected in the form of a deletion of the old link and recreation with the correct GlobalId.
  • Upon creation, Requirement Yogi indexes the new links and notifies Confluence of the creation of a link.
  • The Summary will be kept up-to-date by manual and auto synchronization.

To confirm the link was created and recognized by Requirement Yogi, please go to the requirement in Confluence and check that the link to Jira appears.

  • No labels