Med tilgang til kundeportalen følger også tilgang til APIet.
Relevante endpoints er:
- /api/v3/login
- /api/v3/get_projects
- /api/v3/get_project
- /api/v3/get_work
HTTP metoden er POST og APIet gir informasjon fra seg i JSON-format.
Bruk gjerne en tjeneste som reqbin.com eller postman.com for å teste dette ut.
Fremgangen er slik:
-
- Hent en token ved å gjøre en POST til /api/v3/login; brukernavn og tilgangskode oversendes som username og password (x-www-form-urlencoded): username=brukernavn@domene.no&password=tilgangskoden.
APIet gir JSON tilbake; det blir enten noe slikt (som ikke er ok):
{
"version": "3.0",
"datetime": "2021-11-18T23:40:00+01:00",
"url": "https://domene/api/v3/login",
"status": 401,
"message": "Not OK",
"data": []
}
eller noe slikt (som er ok):
{
"version": "3.0",
"datetime": "2021-11-18T23:43:29+01:00",
"url": "https://domene/api/v3/login",
"status": 200,
"message": "OK",
"data": {
"token": "626e10fb4057155eda65a45ad9d5a5d6bf391387"
}
}
Som du ser inneholder data-elementet en token som brukes i øvrige anrop. - For å hente prosjekt-listen brukeren har tilgang til, gjør en POST til /api/v3/get_projects med token=… som POST-verdien.
Hvis token er gyldig får du noe som:
{
"version": "3.0",
"datetime": "2021-11-18T21:56:37+01:00",
"url": "https://domene/api/v3/get_projects",
"status": 200,
"message": "OK",
"data": {
"projects": ["1017", "3157", "3158", "4507", "52238", "64000", "980"]
}
} - Du kan så spørre om innehold i et prosjekt med en POST til f.eks.: /api/v3/get_project/52238, igjen met token som POST-verdien. Svaret du får tilbake kan se slik ut:
{
"version": "3.0",
"datetime": "2021-11-18T22:50:43+01:00",
"url": "https://domene/api/v3/get_project/64000",
"status": 200,
"message": "OK",
"data": {
"project": {
"number": "64000",
"description": "SUS 2023 Bygg 81",
"contact": "drift@lilleland.no"
},
"work": [{
"pyrodok_version": "2021.10K",
"pyrodok_type": "sealing",
"pyrodok_id": "4H.3KAR0C",
"project": "64000",
"qr_code": "0zjd3",
"reference": null,
"post": "25.03.0251.7",
"building": "81",
"from_room": ["81.06AL271"],
"from_floor": "6",
"to_room": ["5"],
"to_floor": "5",
"axis_1": null,
"axis_2": null,
"position": "Gulv",
"height_from_floor": {
"value": 0,
"unit": "m"
},
"wall_type": "Betong 1 side",
"fire_class": "EI60",
"amount": "1",
"hole": "980 x 480",
"tubes": ["2x \u00f8400"],
"discipline": "Ventilasjon",
"date": "2021-09-30",
"invoiced": "2021-09-30",
"pyrodok_url": {
"json": "https://domene/api/v3/get_work/64000/0zjd3?format=json",
"html": "https://domene/api/v3/get_work/64000/0zjd3?format=html",
"pdf": "https://domene/api/v3/get_work/64000/0zjd3?format=pdf"
},
"drawing": {
"url": "https://domene/api/v3/get_drawing/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/64000_6",
"url_with_pin": "https://domene/api/v3/get_drawing/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/64000_6?x=38.17043&y=78.36575"
},
"materials": [{
"name": "EX Gipsm\u00f8rtel",
"documentation": [{
"type": "doc",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/030bff8e981b983033dc5edbbe7a6391"
}, {
"type": "eta",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/f351d4a34d1cfb998dd940088c3dc9ef"
}, {
"type": "tds",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/bf7bef4ced46d8ca4eb264faa2f11332"
}, {
"type": "dcl",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/d1b392626436b4a67670c3b006252c02"
}, {
"type": "use",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/c957bd600d449e6385b0dc9af9bf296c"
}, {
"type": "mom",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/3d04900da713f067591b3f8477d508db"
}, {
"type": "hse",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/925ef4d29d985810fa1a883ecf0c3461"
}]
}, {
"name": "FR Brannplate",
"documentation": [{
"type": "eta",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/77ad9fd9e0be2714761405a77cda7503"
}, {
"type": "mom",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/d154e14e2d2bb9cdcab5c8158115c593"
}, {
"type": "use",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/a5f9b355e89afafedf1f4360eff97806"
}, {
"type": "hse",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/0f4df5ac20ad475ae81cf9c6a512a552"
}, {
"type": "tds",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/1a86620f19911b82832448a988cf6285"
}, {
"type": "dcl",
"url": "https://domene/api/v3/get_documentation/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/63df5f4ef395f9ed883303423c1bd9d9"
}]
}],
"articles": [],
"pictures": ["https://domene/api/v3/get_image/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/1633002307046", "https://domene/api/v3/get_image/a9c55c1caf9d39eb63ba4c5de8c4e7ab18e16eb3/1633002286873"]
}, {
"pyrodok_version": "2021.10K",
"pyrodok_type": "sealing",
"pyrodok_id": "4H.3KAQOA",
"project": "64000",
"qr_code": "0zjd2",
"reference": null,
"post": "25.03.0251.7",
"building": "81",
"from_room": ["81.06AG252"],
"from_floor": "6",
"to_room": ["5"],
"to_floor": "5",
"axis_1": null,
"axis_2": null,
"position": "Gulv",
"height_from_floor": {
"value": 0,
"unit": "m"
},
"wall_type": "Betong 1 side",
"fire_class": "EI60",
"amount": "1",
"hole": "1300 x 650",
"tubes": ["2x \u00f8500"],
"discipline": "Ventilasjon",
"date": "2021-09-30",
"invoiced": "2021-09-30",
"pyrodok_url": {
"json": "https://domene/api/v3/get_work/64000/0zjd2?format=json",
"html": "https://domene/api/v3/get_work/64000/0zjd2?format=html",
"pdf": "https://domene/api/v3/get_work/64000/0zjd2?format=pdf"
},
"drawing": {
"url": "https://domene/api/v3/get_drawing/056053c9b44b4d51e394a62f106b73c20d780e7f/64000_6",
"url_with_pin": "https://domene/api/v3/get_drawing/056053c9b44b4d51e394a62f106b73c20d780e7f/64000_6?x=27.62001&y=74.57536"
},
"materials": [{
"name": "EX Gipsm\u00f8rtel",
"documentation": [{
"type": "doc",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/030bff8e981b983033dc5edbbe7a6391"
}, {
"type": "eta",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/f351d4a34d1cfb998dd940088c3dc9ef"
}, {
"type": "tds",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/bf7bef4ced46d8ca4eb264faa2f11332"
}, {
"type": "dcl",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/d1b392626436b4a67670c3b006252c02"
}, {
"type": "use",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/c957bd600d449e6385b0dc9af9bf296c"
}, {
"type": "mom",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/3d04900da713f067591b3f8477d508db"
}, {
"type": "hse",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/925ef4d29d985810fa1a883ecf0c3461"
}]
}, {
"name": "FR Brannplate",
"documentation": [{
"type": "eta",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/77ad9fd9e0be2714761405a77cda7503"
}, {
"type": "mom",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/d154e14e2d2bb9cdcab5c8158115c593"
}, {
"type": "use",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/a5f9b355e89afafedf1f4360eff97806"
}, {
"type": "hse",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/0f4df5ac20ad475ae81cf9c6a512a552"
}, {
"type": "tds",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/1a86620f19911b82832448a988cf6285"
}, {
"type": "dcl",
"url": "https://domene/api/v3/get_documentation/056053c9b44b4d51e394a62f106b73c20d780e7f/63df5f4ef395f9ed883303423c1bd9d9"
}]
}],
"articles": [],
"pictures": ["https://domene/api/v3/get_image/056053c9b44b4d51e394a62f106b73c20d780e7f/1633001876370", "https://domene/api/v3/get_image/056053c9b44b4d51e394a62f106b73c20d780e7f/1633001863454"]
}]
}
}
Du får i hver fremkomst i listen work noen lenker, bl.a. til forskjellige format (pdf, json, html), i elementet pyrodok_url.
Andre relevante lenker finner du i følgende elementer (disse lenker er vanlige GETs som ikke krever authentisering):- drawing
- materials -> documentation
- articles -> documentation
- pictures
Bildefilen https://domene.no/api/v3/get_image/056053c9b44b4d51e394a62f106b73c20d780e7f/1633001863454 f.eks. er det bare å hente.
- Hent en token ved å gjøre en POST til /api/v3/login; brukernavn og tilgangskode oversendes som username og password (x-www-form-urlencoded): username=brukernavn@domene.no&password=tilgangskoden.