Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

We know that many of you prefer to utilise our current API, and therefore as our products grow we review our exisiting existing tools to ensure they are they’re delivering the most value to our users, and meet meeting our future needs.

The current API has become outdated and we needed to freshen things up to help move it as a result we’ve made a few changes in order to move forward with new functions and improved technologies. In support of this we have This means that we’ve introduced our API v2, which has been written in JSON rather than XML.

...

We know that many of our partners make use of the current API , and therefore we are we’re not planning to remove this until the end of 2021, and rather we are introducing the . The new API v2 will be introduced to work in parallel alongside the current one – this means that NO immediate changes are needed by our partners.  The new API v2 is already available as a BETA release , which and is included in the December 2020 version of the dashboard.

...

The new API v2 is based on a JSON file format, rather than XML as that we used in the current version, however the . The BETA release will deliver like-for-like functionality that’s found in the current API - but we will be expanding on that further in 2021.  The key functions most commonly used include.

...

·        Retrieving a list of Charts

We are ' re also taking the opportunity to remove any redundant functions in the current API , so we do not just move the technical debt across, therefore we have not included the following API endpoints in the new version due to their redundancy. The following have been removed:

·        Preferred Layouts

...

We will be introducing new functions into the API v2 in 2021 , around - User Layouts and Connection user links to give you a flavour.  A timeline for these will be shared in early 2021and we’ll share a timeline for these changes as soon as we have more information.

Info

See our SwaggerHub account for technical information on our new API v2.

Note: SwaggerHub may have small problems, so if the page doesn’t display AFTER redirecting, just do an F5 refresh (sometimes you need to refresh a few times)

Info

See some of our API Examples on our github repository.

Info

We held an API Webinar in January 2021 to help provide an overview on the new API and demonstrate some if its features - you can find the Webinar

...

here.

Key Partner Takeaways

  1. Our API is changing, but you don’t have to move to the new v2 just yet… we’re keeping the old one as it is in place for 12 months

  2. The new API v2 will be a like for like in terms of functions – but written in JSON rather than XML

  3. We will be introducing new functions into v2 further down the line, and we’d like to hear from you about things you’d like to see included

...

  1. We suggest you create your domain objects (e.g. PiUser) to encapsulate the information being returned from the PI pi API.

  2. A call to PiApi.createUser() will return PiUser, which is in your control

  3. PiApi.createUser() internally handles how to assemble a request to PI pi and assemble the PiUser to be returned

With such encapsulation, if you create PiUser in ten places in your application, and later on you want to change the usage of PI API, you only need to update your code in one place

  • e.g. upgrading from API v1 to v2 would be easy

  • e.g. if usercode in the response is renamed to username, you only need to assign response.username to PiUser.usercode

  • later on if you want to use Open API sdk tools to generate content to call pi api, this can happen in the wrapper as well

Code Block
class PiUser {

...


  Integer id

...


  String usercode

...


  // the rest of the fields that matter to your application

...


}

...

Code Block
class PiApi {

...


 

...

 static PiUser createUser(String usercode) {

...


      String url // e.g. https://localhost:8224/panMISDashboardWebServices/api/user

...


      String body // assemble the request and put usercode into the body

...


      String response = Http.post(url, body) // in xml

...


      Map data // converted from response xml

...



     

...

 return new PiUser(usercode: data.usercode)

...



  }
}
Elementor macro
rowWidth100
titletyxt1l
content[{"id":"bh0yoh","order":1662116718241,"background":{"source":"color","value":"#ffffff","id":""},"backgroundOverlay":{"isActive":false,"color":"#000000","opacity":0.5},"rows":[{"id":"iwxrz8","order":1662116718241,"type":"one","columns":[{"id":"jc7et","order":1,"alignment":{"vertical":"center","horizontal":"center"},"macro":{"id":"pagedivider","dividerColor":"#8d135bff","text":"Related Topics","fontSize":24,"textAlignment":"center","dividerWidth":100,"dividerWeight":3,"dividerType":"text-only","dividerIcon":"atlaskit/StarFilledIcon","textColor":"#8d135bff","iconColor":"#000","labelPosition":"middle","emojiEnabled":"false","emoji":{"id":"smile","name":"Smiling Face with Open Mouth and Smiling Eyes","short_names":["smile"],"colons":":smile:","emoticons":["C:","c:",":D",":-D"],"unified":"1f604","skin":null,"native":"😄"}}},{"id":"2tph1k","order":2,"alignment":{"vertical":"center","horizontal":"center"},"macro":{}},{"id":"eykj1n","order":3,"alignment":{"vertical":"center","horizontal":"center"},"macro":{}},{"id":"q34fws","order":4,"alignment":{"vertical":"center","horizontal":"center"},"macro":{}}]},{"id":"0bt4bi","order":1662116800345,"type":"one","columns":[{"id":"z72q2","order":1,"alignment":{"vertical":"center","horizontal":"center"},"macro":{"id":"pages","type":"list","layout":"four","loadType":"manual","parentPage":"202375675","manualPages":[{"id":"4ejjbc","position":0,"contentId":"1238892545"},{"id":"7mllm8","position":1,"contentId":"229834770"},{"id":"qoo3lne","position":2,"contentId":"229441558"},{"id":"8qwd4q","position":3,"contentId":"562462756"},{"id":"86t3ve","position":4,"contentId":"794689558"},{"id":"1aq6c","position":5,"contentId":"1271889921"}],"labels":[],"spaces":[],"contributors":[],"numberOfItems":8,"pagination":"infinite"}},{"id":"rakvfe","order":2,"alignment":{"vertical":"center","horizontal":"center"},"macro":{}},{"id":"w8pjr","order":3,"alignment":{"vertical":"center","horizontal":"center"},"macro":{}},{"id":"ziv95p","order":4,"alignment":{"vertical":"center","horizontal":"center"},"macro":{}}]}]}]