Difference between revisions of "KnowledgeBase"

From Open Rail Data Wiki
Jump to navigation Jump to search
Line 32: Line 32:
 
In this step, using a REST client you perform an HTTP POST call to https://datafeeds.nationalrail.co.uk/authenticate. This step requires using your email address and password registered on NRDP and will produce a token key. The following example shows the HTTP POST request and response with NRDP:
 
In this step, using a REST client you perform an HTTP POST call to https://datafeeds.nationalrail.co.uk/authenticate. This step requires using your email address and password registered on NRDP and will produce a token key. The following example shows the HTTP POST request and response with NRDP:
 
* Example HTTP POST Request to NRDP:
 
* Example HTTP POST Request to NRDP:
   <code> POST https://datafeeds.nationalrail.co.uk/authenticate HTTP/1.1
+
   <code><pre> POST https://datafeeds.nationalrail.co.uk/authenticate HTTP/1.1
 
   Content-Type: application/x-www-form-urlencoded
 
   Content-Type: application/x-www-form-urlencoded
 
   Accept: application/json, text/plain, */*
 
   Accept: application/json, text/plain, */*
 
   Raw payload: username=user1@gmail.com&password=P@55w0rd1
 
   Raw payload: username=user1@gmail.com&password=P@55w0rd1
   //Add your registered NRDP email address and NRDP password in the “Raw payload” section above </code>
+
   //Add your registered NRDP email address and NRDP password in the “Raw payload” section above </pre></code>
 
* Corresponding example HTTP Response from NRDP:
 
* Corresponding example HTTP Response from NRDP:
<code> {
+
<code><pre> {
 
  "username": " user1@gmail.com ",
 
  "username": " user1@gmail.com ",
 
  "roles": {
 
  "roles": {
Line 46: Line 46:
 
  },
 
  },
 
  "token": " user1@gmail.com:1491312310772:56c56baa3e56d35ff0ede4a6aad1bcfb"
 
  "token": " user1@gmail.com:1491312310772:56c56baa3e56d35ff0ede4a6aad1bcfb"
  } </code>
+
  } </pre></code>
  
 
Each token is valid for 1 hour and you will receive a 401 unauthorized response when the token has expired. The following http response example is generated after sending an http request to a NRDP knowledgebase feed with an expired token.
 
Each token is valid for 1 hour and you will receive a 401 unauthorized response when the token has expired. The following http response example is generated after sending an http request to a NRDP knowledgebase feed with an expired token.
 
* Example HTTP 401 Response Header: Token Expired:
 
* Example HTTP 401 Response Header: Token Expired:
<code> Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+
<code><pre> Cache-Control: no-cache, no-store, max-age=0, must-revalidate
 
  Content-Language: en
 
  Content-Language: en
 
  Content-Length: 1081
 
  Content-Length: 1081
Line 60: Line 60:
 
  X-Content-Type-Options: nosniff
 
  X-Content-Type-Options: nosniff
 
  X-Frame-Options: DENY
 
  X-Frame-Options: DENY
  X-Xss-Protection: 1; mode=block </code>
+
  X-Xss-Protection: 1; mode=block </pre></code>
 
*Corresponding example HTML Response file: Token Expired:
 
*Corresponding example HTML Response file: Token Expired:
 
<code><pre> <html>
 
<code><pre> <html>

Revision as of 10:47, 28 April 2017

About

KnowledgeBase is RDG’s Content Management System providing customer friendly information on the railways and associated products. KnowledgeBase data is available on National Rail Data Portal through 2 subscription types

  • Real Time Data Feeds – for new, modified and deleted Incidents
  • On Demand Data Feeds – for requesting the latest information on the following
    • Ticket Restrictions
    • Companies
    • Incidents
    • National Service Indicator
    • Promotions (Public)
    • Stations
    • Ticket Types

Accessing the KnowledgeBase Feeds

To access the RDG KnowledgeBase feeds, you must have an account on the National Rail Data Portal (NRDP) at http://datafeeds.nationalrail.co.uk. After logging in, you will see 3 subscription types: Historical Service Performance (HSP), Real Time Data Feeds and On Demand Data Feeds. By selecting the checkbox for each of these subscription types, the respective sections become visible on the My Feeds page.

The previous Darwin Data Feed on the NRDP Account page has been replaced by the Real Time Data Feed which once selected include details about the Darwin push-port feeds and the KnowledgeBase – Real Time Incident feed in the My Feeds page.

To receive KnowledgeBase Real Time Incidents, select Real Time Data Feeds under Subscription Type in the Edit User Details page and then select the Update button to save this change. Go to the My Feeds page and select the KnowledgeBase data type – Real Time Incidents option. You will need the Real Time Information /STOMP details to start receiving real time incident messages via a STOMP client.

The On Demand Data Feeds section on the My Feeds page contains details about accessing the latest versions of Ticket Restrictions, Companies, Incidents, National Service Indicator, Promotions (Public), Stations and Ticket Types files from KnowledgeBase. To receive these KnowledgeBase files, select the On Demand Data Feeds checkbox under the Subscription type in the Edit User Details page and then select the update button to save this change.

RDG KnowledgeBase APIs

On Demand Data Feeds

After selecting the On Demand checkbox subscription type on NRDP, you can receive the KnowlegeBase xml files in 2 steps via a rest client.

Step 1: Generate Token

In this step, using a REST client you perform an HTTP POST call to https://datafeeds.nationalrail.co.uk/authenticate. This step requires using your email address and password registered on NRDP and will produce a token key. The following example shows the HTTP POST request and response with NRDP:

  • Example HTTP POST Request to NRDP:
 POST https://datafeeds.nationalrail.co.uk/authenticate HTTP/1.1
   Content-Type: application/x-www-form-urlencoded
   Accept: application/json, text/plain, */*
   Raw payload: username=user1@gmail.com&password=P@55w0rd1
   //Add your registered NRDP email address and NRDP password in the “Raw payload” section above 
  • Corresponding example HTTP Response from NRDP:
 {
 "username": " user1@gmail.com ",
 "roles": {
 "Role(id=6ab28d46-0e4a-11e7-9339-060a84373309, name='ROLE_KB_USER')": true,
 "Role(id=47d36dc4-16b9-11e6-9746-060a84373309, name='ROLE_HSP_USER')": true,
 "Role(id=4e660138-bb39-11e4-9da1-060a84373309, name='ROLE_D3_USER')": true
 },
 "token": " user1@gmail.com:1491312310772:56c56baa3e56d35ff0ede4a6aad1bcfb"
 } 

Each token is valid for 1 hour and you will receive a 401 unauthorized response when the token has expired. The following http response example is generated after sending an http request to a NRDP knowledgebase feed with an expired token.

  • Example HTTP 401 Response Header: Token Expired:
 Cache-Control: no-cache, no-store, max-age=0, must-revalidate
 Content-Language: en
 Content-Length: 1081
 Content-Type: text/html;charset=utf-8
 Date: Wed, 05 Apr 2017 09:52:11 GMT
 Expires: 0
 Pragma: no-cache
 Server: Apache-Coyote/1.1
 X-Content-Type-Options: nosniff
 X-Frame-Options: DENY
 X-Xss-Protection: 1; mode=block 
  • Corresponding example HTML Response file: Token Expired:
 <html>
 <head>
 <title>Apache Tomcat/7.0.56 - Error report</title>
 <style>
 <!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-
 size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-
 color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A 
 {color : black;}A.name {color : black;}HR {color : #525D76;}-->
 </style> </head>
 <body>
 <h1>HTTP Status 401 - Unauthorized: Authentication token was either missing or invalid.</h1>
 <HR size="1" noshade="noshade">
 <p>
 <b>type</b> Status report</p>
 <p>
 <b>message</b> <u>Unauthorized: Authentication token was either missing or invalid.</u>
 </p>
 <p>
 <b>description</b> <u>This request requires HTTP authentication.</u>
 </p>
 <HR size="1" noshade="noshade">
 <h3>Apache Tomcat/7.0.56</h3>
 </body>
 </html>