Tredjepart webservices



Relaterede dokumenter
Trin Beskrivelse Navigation. Introduktion til API et

Trin Beskrivelse Navigation. Der stilles to API-kald til rådighed: 1. GET: /authorizations (returnerer fuldmagts- og målepunktsstamdata)

Affaldsdatasystem Vejledning supplement i system-til-system integration for.net brugere

Vejledning: Kundestyret adgang til data

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere

Hvordan vælger jeg dokumentprofilen?

System til system indberetning af underretninger

D INTEGRATIONSDESIGN FOR DATAAFTAGERE

1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær.

Udkast til dataudveksling med elleverandører og andre tredjeparter via kundestyret dataadgang

F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank

XML webservice for deklarationsgebyrer. Version 1.0 Final

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

ELEKTRONISK INDBERETNING BØRNEDATABASEN VIA DGWS 13/ VERSION 1.02

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;

AuthorizationCodeService

Vejledning til Retsinformation web services test stubs

Affaldsdatasystem Vejledning i system-til-system integration

Guide for Forsikring & Pensions REST API v2, version Indledning. 2. Forudsætninger før brug af Forsikring & Pensions REST API

XML webservice for pensionsordninger. Version 1.0 Draft A

KOMBIT. Køreprøvebooking KC-KPB- Web Service Systemdokumentation. Version 1.6. Dato 12. juni Reference [Reference]

/05/2013 Tilføjet dokumentation af bvn input for GetEngagementDetailed

Digital post Snitflader Bilag A5 - REST HTTP returkoder Version 6.3

Webservice til upload af produktionstilladelser

Dokumentation af optagelse.dk

Indholdsfortegnelse. Version Serviceplatformen - opsætningsguide (Eksterne testmiljø) Indledning... 2

Udkast til dataudveksling med elleverandører og andre tredjeparter via kundestyret dataadgang

Digital post Snitflader Bilag A2 - REST Register Version 6.3

FairSSL Fair priser fair support

LUDUS Web Bestilling og installation af SSL-servercertifikat Introduktion Bestilling af certifikat fra andre udbydere...

Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben

SOSI STS Testscenarier

Abstrakte datatyper C#-version

Kald af PingService via SOAPUI

Specifikationsdokument for PDF Validator API

Dette dokument beskriver de rekonfigurationer, du skal foretage, hvis du fornyr dit eksisterende funktionscertifikat eller anskaffer et nyt.

Specifikation Abstrakt OO OS-API Rev Specifikation. Abstrakt, objektorienteret operativsystem-api

DKAL Snitflader REST HTTP returkoder

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Bits, bit operationer, integers og floating point

Ivan Overgaard 11/29/2012

NemRefusion VSLight Integrationsvejledning

Virkefeltsregler i Java

Specifikationsdokument for PDF Validator API

Tredjepartsadgang. Til Datahub i Engrosmodellen. André Bryde Christensen & Ulrik Stougaard Kiil

DKAL Snitflader REST Register

En textbox har et Validating event, med dette kan vi samme med en errroprovider checke input:

LESSOR-5. Inquiry (teknisk beskrivelse) Tilgængelighed for andre systemer

Version 1.0. Side 1 af 18

DOtAB. Teknisk rapport

Specifikationsdokument for servicen PID-CPR

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

Teknisk Dokumentation

BBR OIOXML. Vejledning til OIOXML-snitflade. InputBox.wsdl

.NET 4.5 og C# 5.0. Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#.

Citrix CSP og Certificate Store Provider

Digitaliseringsstyrelsen

Oktober 2013 HLG/XIGA. Opstartsvejledning ATS Engros 1/12

STS Driftsvejledning. STS Driftsvejledning

DESIGNDOKUMENT (Teknisk dokumentation)

Ungebasen. Dokumentation af webservices til udveksling af data mellem Ungebasen og et kommunalt vejledningssystem PUBLICPUBLIC PUBLICPUBLICX

Eksempel: et ordresystem note 5 Lagdeling s. 1

Kursusarbejde 3 Grundlæggende Programmering

XML webservice for FP-attester og journaloplysninger. Version 1.0

SAX Simple API for XML.

XML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM.

Opstartsvejledning ATS aktørudgave

Specifikationsdokument for OCSP

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

Databeskrivelse for Eloverblik og Tredjepartsadgang til Data- Hub

Vejledning. 1 Indledning. 2 Kontakt Webservicen. Webservice til Optagelse.dk

OIOSAML.NET og Umbraco. ved Thomas Ravnholt silverbullet.dk

Webservice kald. System-til-system integration. Ny Easy. ATP 1. februar 2017

Transkript:

Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12

Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output eksempel... 4 GET: /timeseries/... 5 Input 5 Output 5 Output eksempel... 5 GET: /historictimeseries/... 7 Input 7 Output 7 Output eksempel... 7.NET kode eksempel... 9 Ændringslog... 12 Dok. 14/11439-5 2/12

1. Introduktion Webservicen består af følgende elementer: ASP.NET Web API, JSON og XML HTTPS/SSL benyttes til transport og sikkerhed. Transportlaget krypterer data og overfører certifikat mellem Tredjepart og Energinet til autentifikation Certifikater (FOCES) benyttes som identifikation af Tredjepart 2. Miljøer TEST miljø Web service Web service dokumentation URL https:// test-energinetcap.miracleas.dk/api/ Afventer PROD miljø Web service Web service dokumentation URL https://eloverblik.dk/api/ Afventer 3. Adgang Før en Tredjepart kan benytte system til system adgangen skal følgende kriterier være opfyldt: Tredjeparten skal anskaffe et funktionscertifikat (FOCES) Tredjeparten skal registreres som systembruger i tredjepartsystemet Tredjeparten skal i øvrigt kunne leve op til de tekniske specifikationer for brug af servicen som beskrives i de efterfølgende sektioner Certifikat kan rekvireres hos NETS: http://www.nets.eu/dk-da/produkter/sikkerhed/funktionssignatur/pages/bestilfunktionssignatur.aspx Installation af certifikatet er beskrevet her: http://www.nets.eu/dkda/produkter/sikkerhed/funktionssignatur/pages/installation.aspx Dok. 14/11439-5 3/12

4. API kald API et er baseret på HTTP. GET: /authorizations Returnerer en liste over fuldmagter for CVR nummeret i Nem ID certifikatet. Input Navn Type Krævet Kommentar Nem ID certifikat Http header Yes Accept Http header No application/xml application/json (default) Output HTTP Status Data Kommentar 200 Liste over fuldmagter i JSON Succes svar 403 Ingen Ikke gyldigt certifikat eller CVR nummer 404 Ingen Ingen fuldmagter fundet Output eksempel XML <meteringpoints> <MeteringPointIdentification>1200000000000123</MeteringPointIdentification> <WebaccessCode></WebaccessCode> <StreetName>Danmarksgade</StreetName> <BuildingNumber></BuildingNumber> <FloorIdentification></FloorIdentification> <Postcode></Postcode> <CityName></CityName> <Alias></Alias> <ParentMP></ParentMP> <SettlementMethod></SettlementMethod> <Product></Product> <MeterCounterUnit></MeterCounterUnit> <MeterReadingOccurence></MeterReadingOccurence> <TypeOfMP>Type 1</TypeOfMP> <NetSettlementGroup></NetSettlementGroup> <DataAccessCvr></DataAccessCvr> <ConsumerCVR></ConsumerCVR> <etc>...</etc> <etc>...</etc> </meteringpoints> JSON "meteringpoints":[ "MeteringPointIdentification":"1200000000000123", "WebaccessCode":"", "StreetName":"Danmarksgade", "BuildingNumber":"", "FloorIdentification":"", "Postcode":"", "CityName":"", "Alias":"", "ParentMP":"", Dok. 14/11439-5 4/12

],, "SettlementMethod":"", "Product":"", "MeterCounterUnit":"", "MeterReadingOccurence":"", "TypeOfMP":"Type 1", "NetSettlementGroup":"", "DataAccessCvr":"", "ConsumerCVR":"" "etc":"..." "etc":"..." GET: /timeseries/ Returnerer målerdata for den kaldte måler Input Navn Type Krævet Kommentar Nem ID certifikat Http header Yes Accept Http header No application/xml application/json (default) MeteringPointId Querystring - integer Yes 18 cifret måler id Period Querystring - string Yes Værdier: Month data for seneste måned Quater data for seneste kvartal Year data for op til et år History Querystring - bool No True False (default værdi) Eksempler: /timeseries?authorizationid=2&meteringpointid=123456789012345678&period= month Output HTTP Status Data Kommentar 200 Målerdata Succes svar 400 None Forkert formateret meteringpointid og/eller forkert kombination af fuldmagt og meteringpointid 403 None Ikke gyldigt certifikat eller CVR nummer 404 None Ingen fuldmagter fundet Output eksempel XML <meteringpoints> <from>23-11-2011 00:00</from> <meteringpointid>1200000000000123</meteringpointid> <to>23-11-2011 01:00</to> Dok. 14/11439-5 5/12

</meteringpoints> <usage>1234,0 KwH</usage> <from>23-11-2011 01:00</from> <meteringpointid>1200000000000126</meteringpointid> <to>23-11-2011 02:00</to> <usage>1234,0 KwH</usage> <from>23-11-2011 02:00</from> <meteringpointid>1200000000000129</meteringpointid> <to>23-11-2011 03:00</to> <usage>1234,0 KwH</usage> JSON "meteringpoints":[ "meteringpointid":"1200000000000123", "from":"23-11-2011 00:00", "to":"23-11-2011 01:00", "usage":"1234,0 KwH", "meteringpointid":"1200000000000126", "from":"23-11-2011 01:00", "to":"23-11-2011 02:00", "usage":"1234,0 KwH", "meteringpointid":"1200000000000129", "from":"23-11-2011 02:00", "to":"23-11-2011 03:00", "usage":"1234,0 KwH" ] Dok. 14/11439-5 6/12

GET: /historictimeseries/ Returnerer målerdata for den kaldte måler. Input Navn Type Krævet Kommentar Nem ID certifikat Http header Yes Accept Http header No application/xml application/json (default) MeteringPointId Querystring - integer Yes 18 cifret måler id Eksempler: /historictimeseries?authorizationid=2&meteringpointid=123456789012345678 Output HTTP Status Data Kommentar 200 Målerdata Succes svar 400 None Forkert formateret meteringpointid og/eller forkert kombination af fuldmagt og meteringpointid 403 None Ikke gyldigt certifikat eller CVR nummer 404 None Ingen fuldmagter fundet Output eksempel XML <meteringpoints> </meteringpoints> <from>23-11-2011 00:00</from> <meteringpointid>1200000000000123</meteringpointid> <to>23-11-2011 01:00</to> <usage>1234,0 KwH</usage> <from>23-11-2011 01:00</from> <meteringpointid>1200000000000126</meteringpointid> <to>23-11-2011 02:00</to> <usage>1234,0 KwH</usage> <from>23-11-2011 02:00</from> <meteringpointid>1200000000000129</meteringpointid> <to>23-11-2011 03:00</to> <usage>1234,0 KwH</usage> JSON "meteringpoints":[ "meteringpointid":"1200000000000123", "from":"23-11-2011 00:00", "to":"23-11-2011 01:00", "usage":"1234,0 KwH", Dok. 14/11439-5 7/12

] "meteringpointid":"1200000000000126", "from":"23-11-2011 01:00", "to":"23-11-2011 02:00", "usage":"1234,0 KwH", "meteringpointid":"1200000000000129", "from":"23-11-2011 02:00", "to":"23-11-2011 03:00", "usage":"1234,0 KwH" Dok. 14/11439-5 8/12

5..NET kode eksempel Nedenstående kodeeksempel viser, hvordan man kan lave klientautentificerede SSL forbindelser til webservicen. using System; using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; namespace TestWebApiClient class Program static void Main(string[] args) RunAsync().Wait(); static async Task RunAsync() // get your Nemid certificate var certificate = new X509Certificate2(@"C:\\Temp\\VOCES_gyldig.p12", "Test1234"); // add certificate to handler var handler = new WebRequestHandler(); handler.clientcertificates.add(certificate); using (var client = new HttpClient(handler)) client.baseaddress = new Uri("http://testenerginetcap.miracleas.dk/api/api/"); client.defaultrequestheaders.accept.clear(); // request json response client.defaultrequestheaders.accept.add(new MediaTypeWithQualityHeaderValue("application/json")); // get authorizations var listofauthorizations = new List<Authorizations>(); var respauthorizations = await client.getasync("authorizations"); if (respauthorizations.statuscode == HttpStatusCode.OK) listofauthorizations = await respauthorizations.content.readasasync<list<authorizations>>(); else var exception = new Exception StatusCode = respauthorizations.statuscode, Reason = respauthorizations.reasonphrase, Content = respauthorizations.content.readasstringasync().result ; Dok. 14/11439-5 9/12

//TODO: Handle errors // get historic timeseries foreach (var authorization in listofauthorizations) foreach (var meter in authorization.listofmeters) var url = string.format("historictimeseries?authorizationid=0&meteringpointid=1", authorization.id, meter.meteringpointidentification); var resptimeseries = await client.getasync(url); if (resptimeseries.statuscode == HttpStatusCode.OK) var timeseries = await resptimeseries.content.readasasync<list<timeseries>>(); //TODO: Save values to collection or datastore else var exception = new Exception StatusCode = resptimeseries.statuscode, Reason = resptimeseries.reasonphrase, Content = resptimeseries.content.readasstringasync().result ; //TODO: Handle errors public class TimeSeries public string MeteringPointId get; set; public DateTime DateFrom get; set; public DateTime DateTo get; set; public decimal UsageDecimal get; set; public string Unit get; set; public class Authorizations public int Id get; set; public string ThirdPartyKey get; set; public string Name get; set; public DateTime StartDate get; set; public DateTime EndDate get; set; public bool HistoricData get; set; public int CurrentDataResolution get; set; Dok. 14/11439-5 10/12

public IEnumerable<MeteringPoints> ListOfMeters get; set; public class MeteringPoints public string MeteringpointIdentification get; set; public string Streetname get; set; public string BuildingNumber get; set; public string Postcode get; set; public string CityName get; set; public string Alias get; set; public string ParentMP get; set; public string v1 get; set; public string v2 get; set; public string MeterCounterUnit get; set; public string v4 get; set; public string TypeOfMP get; set; public string NetSettlementGroup get; set; public string DataAccessCvr get; set; public string ConsumerCVR get; set; public class Exception public HttpStatusCode StatusCode get; set; public string Reason get; set; public string Content get; set; Dok. 14/11439-5 11/12

6. Ændringslog Version Date Forfatter Kommentarer 0.3 2015-04- 23 0.2 2015-02- 23 0.1 2015-02- 18 Flemming Schøsler Flemming Schøsler Flemming Schøsler Opdateret.NET eksempel og tilføjet historic timeseries API beskrivelse. Tilføjet.NET eksempel Første version Dok. 14/11439-5 12/12