API dokumentation
NBS Nordics API kan benyttes af udviklere til at hente og redigere information om byggebeskrivelser tilknyttet en brugerkonto.
Indhold i denne artikel:
Kom i gang
NBS Nordics API kan benyttes af udviklere til at hente og redigere information om byggebeskrivelser tilknyttet et projekt. For at bruge API'en kræver det, at man har en brugerkonto. Ved kontakt til API'en skal man desuden bruge sin API-nøgle, som man finder under konto-oplysningerne, når man er logget ind. (Klik på dit brugernavn i øverste højre hjørne -> Redigér din konto -> Vælg fanen API) API-nøglen er unik for hver enkelt bruger.
Base URL: nbsnordic.net/api/v2
NB: som skema bør https altid benyttes
Autorisation
Når der foretages et API kald skal den personlige API nøgle samtidig medsendes, for at autorisere forespørgslen. API nøglen sendes med som en custom header api-key. Eksempel:
$ curl -H "api-key: xxxxxxxxxxxxxxxx" https://nbsnordic.net/api/v2/projects
API'en returner JSON-data ved succes eller statuskode 401 + fejlbesked, hvis API nøglen ikke kunne genkendes.
Eksempel
Hvis du ønsker at hente information om alle bygningsdele ud for et projekt, kan du kalde følgende URL.
https://nbsnordic.net/api/v2/projects/[projectId]/components
HTTP kaldet kunne så se således ud:
$ curl -H "api-key: xxxxxxxxxxxxxxxx" https://nbsnordic.net/api/v2/projects/127/components
Ovenstående vil returnere:
{ "components": [ { "active": 1, "classificationcode": "0", "classificationcode_separator": ".", "classificationname": "", "classificationserial": "001", "company_id": 23, "contract": { "created_at": "2018-05-11 08:02:01", "id": 4970, "is_contract": 1, "is_default": 0, "is_subject": 0, "name": "Byggepladsentreprise", "project_id": 127, "updated_at": "2018-05-11 08:02:01" }, "contract_id": 4970, "contract_name": "Byggepladsentreprise", "created_at": "2017-07-04 14:58:41", "deleted_at": null, "description": "Beskrivelse tekst", "doc_title": "Generisk bygningsdel", "document_id": 0, "document_names": "Dokument til udgivelse, Arbejdsbeskrivelse for afløb i jord, Test dokument auto oprettet (omdøbt)", "extra_fields": [ { "applies_to_all_classificationcodes": 0, "content": "Type B", "created_at": "2019-06-18 21:58:22", "field_id": "isoleringstype", "field_name": "Isoleringstype", "revit_parameter": "", "updated_at": "2019-06-18 21:58:22" } ], "id": 418, "lasteditor_id": 38, "measure_id": 2, "measure_name": "m2", "measurement": { "calculation_type": "sum", "created_at": "-0001-11-30 00:00:00", "deleted_at": null, "description": "Total areal", "id": 2, "measurement_id": 1, "name": "m2", "updated_at": "-0001-11-30 00:00:00" }, "measurement_amount": 0, "measurement_amount_manual": null, "measurement_updated_at": "2018-10-23 13:12:13", "name": "Generisk bygningsdel", "project_id": 127, "published_document_urls": [ "https://nbsnordic.net/pubdocs/view/dbd757aaf9", "https://nbsnordic.net/pubdocs/view/55041b5121", "https://nbsnordic.net/pubdocs/view/2f06da8e0e" ], "revit_id": "", "structure": "Opbygnings beskrivelse", "subject": { "created_at": "2018-05-11 08:02:01", "id": 4956, "is_contract": 0, "is_default": 0, "is_subject": 1, "name": "Tag", "project_id": 127, "updated_at": "2018-05-11 08:02:01" }, "subject_id": 4956, "subject_name": "Tag", "template_id": 196, "template_type": null, "tender_title": "Generisk bygningsdel", "tenderlist": { "created_at": "2019-06-03 00:25:47", "id": 1873, "number": 1, "project_id": 127, "reference": "Dør", "title": "Den lange dør", "updated_at": "2019-06-18 21:59:16" }, "tenderlist_id": 1873, "tenderlist_name": "Den lange dør", "tenderlist_order": 1, "updated_at": "2019-06-18 21:59:16", "user_id": 38 } ], "meta": { "server_timestamp": "2019-06-18 21:59:44" }, "project": { "active": 1, "archived_at": "-0001-11-30 00:00:00", "classification_id": 1, "classificationcode_separator": ".", "company_id": 23, "created_at": "2017-07-04 14:58:17", "ends_at": null, "id": 127, "keynote_columns": "[navn] [linjeskift] [opmålingsregel]", "keynote_columns_api": "[navn] [linjeskift] [opmålingsregel]", "owner_city": "", "owner_countrycode": "", "owner_name": "", "owner_street": "", "owner_streetno": "", "owner_type": 0, "owner_zip": 0, "ownercontact_email": "", "ownercontact_name": "", "ownercontact_phone": "", "payment_type": null, "plan": "enterprise", "project_city": "", "project_countrycode": "", "project_description": "", "project_enddate": null, "project_form": 0, "project_id": "", "project_matrikelnr": "", "project_name": "Jonsvangen ejerlaug", "project_phase": 0, "project_startdate": null, "project_street": "", "project_streetno": "", "project_type": 0, "project_zip": 0, "projectstructure": "0", "stripe_id": null, "stripe_plan": null, "stripe_plan_type": "enterprise-quarterly", "updated_at": "2019-06-18 21:59:16", "use_alternative_quantities_calculation_method": null } }
Endpoints
Herunder er en oversigt over tilgængelige api-kald.
For at isolere informationer til et enkelt element, skrives ID'et blot efter en skråstreg - f.eks. vil /projects/32 returnere information om dette enkelte projekt.
GET:
Version | Endpoint | Beskrivelse | Filter |
---|---|---|---|
V1 | /documents |
Returnerer liste over dokumenter fra alle brugerens projekter | ingen |
V1 | /documents/[document_id] | Isoleret information om dokument | Ingen |
V1 | /documents/[document_id]/paragraphs | Returnerer liste over afsnit fra dokument | Ingen |
V1 | /paragraphs/[paragraph_id] | Returnerer isoleret information om afsnit | Ingen |
V1 | /projects | Liste over projekter | Ingen |
V1 | /projects/[project_id] | Isoleret information om projekt | Ingen |
V1 | /projects/[project_id]/documents | Returnerer liste over dokumenter for projekt | Ingen |
V2 | /projects/[project_id]/components | Returnerer bygningsdele for projekt | Ingen |
POST:
Version | Endpoint | Beskrivelse | Filter |
---|---|---|---|
V2 | /sheet | Tilføje skema med en variabel mængde Sharktags. Tilgængelige felter: 'name', 'revit_id', 'project_id', 'json_array'. Er der allerede et skema i projektet med samme revit_id, overskrives dette. |
Ingen |
V2 | /quantities | Opdaterer mængder for bygningsdele. Tilgængelige felter: 'project_id', 'json_array'. |
Ingen |
V2 | /projects/[project_id]/component | Indsæt en ny bygningsdel i et projekt. Tilgængelige felter: 'name', 'structure', 'classificationcode', 'discipline_id', 'measure_id', 'active' (1 eller 0), 'description'. Den oprettede bygningsdel vil blive returneret som JSON inkl. bygningsdel ID. |
Ingen |