For at komme godt i gang med Swagger, så vil nedenstående afsnit forklare processen af at oprette et kommuneplantillæg fra bunden og tilføje rammer samt digitale retningslinjer til det.
Denne gennemgang skal ses som inspiration og er ikke nødvendigvis en perfekt gennemgang af, hvordan indholdet og processen for et kommuneplantillæg skal se ud.
Opret kommuneplantillæg
Start med at oprette et tomt kommuneplantillæg i status kladde til forslag gennem kaldet: kommuneplantillaeg/opret.
Tryk på "Try it out" så det er muligt at redigere eksemplet og udfyld herefter kaldets eksempel:
OBS: Hvis der er citationstegn (f.eks. "string"), så skal den ønskede værdi skrives indenfor citationstegnene.
- Plannavn udfyldes med det navn, som du vil give planen.
- Planstatus bør allerede være sat til "KLADDE_TIL_FORSLAG", som er den eneste valide værdi.
- Kommunekode skal sættes til kommunekoden på den kommune, som der arbejdes på. København er f.eks. 101.
Husk at du kun kan oprette og redigere planer på en kommune, som din bruger giver dig adgang til
- KommuneplanId skal være planid'et for den kommuneplan, som kommuneplantillægget er relateret til.
Brug herefter "Execute" knappen til at oprette et tomt kommuneplantillæg på den ønskede kommune.
Svaret fra systemet vil oplyse planid'et på det nyoprettede kommuneplantillæg. Notér dette id. Det vil fremover blive refereret til som KPT_ID.
TIP: Brug CTRL + F genvejen til hurtigt at udsøge de kald som du skal bruge på Swagger.
Opdater stamdata for kommuneplantillæg
Find kaldet /kommuneplantillaeg/opdater/{planid} som skal bruges til at opdatere kommuneplantillæggets stamdata.
Indsæt KPT_ID som værdi til planId.
Udskift KommuneplantillaegOpdaterDTO eksemplet med følgende hvilket vil opdatere forslagsdatoen og høringsperioden for planen:
{
"datoer": {
"forslagsDato": "2023-09-10",
"hoeringsperiodeStartDato": "2023-09-20",
"hoeringsperiodeSlutDato": "2023-11-10"
}
}
Man kan eventuelt rette datoerne til noget andet, hvis det er ønsket.
OBS: I øjeblikket er der ikke en simpel måde at uploade et plandokument til planen gennem Swagger. Det anbefales derfor, at man anvender PPRAM til at tilføje det til planen, hvis dette er ønsket.
Tilføj digitale retningslinjer
Digitale retningslinjer er bygget op af emne-, indhold- og område-objekter. Kort fortalt opretter man indhold under emner og områder oprettes under indhold.
Følgende afsnit om digitale retningslinjer giver eksempler på, hvordan digital retningslinjer til en plan kan bygges op.
Opret emne-objekter
Find kaldet /emne/opret i Swagger og start med at oprette seks tomme emne-objekter, som er vores fundament for planens digitale retningslinjer.
Husk at notere emnernes planId'er (emner, indhold og områder anses alle som værende planer), da de skal bruges senere. De vil blive refereret til som emne1, emne2, emne3, osv.
TIP: Hvis du glemmer at notere id på kommuneplantillæggets emner, indhold og områder, så kan du hente dem gennem tilsvarende hent kald (f.eks. /emne/hent), hvor du angiver KPT_ID som kommuneplantillaegId og uden at angive et planId i kaldet.
Emnerne skal oprettes på samme kommune som KPT_ID, så husk at tilrette kommunekode og tilføj KPT_ID som værdi til "kommuneplantillaegId".
"KommuneplanId" skal ikke bruges, så den skal fortsat stå som null. Null betyder, at kommuneplanId ikke er relevant her og systemet skal ignorere det.
Eksempel på København kommune:
{
"planstatus": "KLADDE_TIL_FORSLAG",
"kommunekode": 101,
"kommuneplanId": null,
"kommuneplantillaegId": 12345678
}
Opdater emne-objekterne
Find kaldet /emne/opdater/{planid} hvilket skal bruges til at indsætte data i de tomme emne-objekter.
PlanId skal være id på det emne, som du vil opdatere (f.eks. emne1).
I dette eksempel bruges emne-objekter til at indsætte overordnet introduktionstekst til de forskelle retningslinjer.
OBS: Eksemplet har en parameter som hedder indeks. Denne vil ikke blive brugt her, da den ikke er relevant. indeks angiver læseorden og kan bruges til at ændre rækkefølgen på emnerne.
Opdater de seks emner med følgende eksempler (kopier fra filen og indsæt i opdater hele kaldet).
Nogle af eksemplerne er ret lange, da der er meget tekst eller billederne er blevet oversat til base64 tekst (det som er en masse volapyk), hvilket kan oversættes tilbage til billeder i PPRAM.
De lange eksempler skal derfor downloades og åbnes i f.eks. Notepad, da de ellers kommer til at fylde for meget på denne side.
emne1 skal opdateres med emne1_eksempel.txt
emne2 skal opdateres med emne2_eksempel.txt
emne3 skal opdateres med emne3_eksempel.txt
emne4 skal opdateres med emne4_eksempel.txt
emne5 skal opdateres med emne5_eksempel.txt
emne6 skal opdateres med emne6_eksempel.txt
Opret indhold-objekter
Nu hvor vi har oprettet og opdateret seks emner, så skal vi have oprettet indhold-objekter til nogle af emne-objekterne.
Det mest vigtige ved indhold-objekter, er, at man angiver en lovgivningsbeskrivelse/paragraf-henvisning ved oprettelse. Indholdets underliggende områder er bundet til den samme lovgivning som indholdet.
I dette eksempel vil alle emner ikke få oprettet indhold under sig.
Find kaldet /indhold/opret i Swagger. Her er de relevante felter "kommunekode", "parentId" og "kode". Kommunekode er set før, så den vil ikke nævnes mere herfra (altid sæt denne til samme kommunekode som tidligere).
- parentId skal være id'et på det emne, som indholdet skal høre under - f.eks. emne1
- kode skal være den paragrafkode/-henvisning, som indholdet skal gælde for - f.eks. 1103 (Planloven: § 11a, 3). Se Kodeliste her.
OBS: Husk at notere id'er til de indhold-objekter, som bliver oprettet. De bliver relevante ift. opdatering af indhold og oprettelse af område-objekter.
Følgende indhold skal oprettes:
- emne4 skal have oprettet ét indhold-objekt under sig: indhold1
- Kode skal være 1103 (hvilket er Planloven: § 11a, 3)
- emne5 skal have oprettet ét indhold-objekt under sig: indhold2
- Kode skal være 1105 (hvilket er Planloven: § 11a, 4)
- emne6 skal have oprettet ét indhold-objekt under sig: indhold3
- Kode skal være 1114 (hvilket er Planloven: § 11a, 14)
Eksempel til brug af oprettelse. Husk at tilrette parentId og kode:
{
"planstatus": "KLADDE_TIL_FORSLAG",
"kommunekode": 101,
"parentId": 12345678,
"paragraf": {
"kode": 1103
}
}
Opdater indhold-objekter
Find kaldet /indhold/opdater/{planId}. Ligesom med emner skal indhold-objekterne også opdateres med data.
Planid skal være id'et på indholdet - f.eks. indhold1.
Følgende indhold skal opdateres med eksemplerne:
indhold1 skal opdateres med indhold1_eksempel.txt
indhold2 skal opdateres med indhold2_eksempel.txt
indhold3 skal opdateres med indhold3_eksempel.txt
Opret område-objekter
Nu hvor der er oprettet emne- og indhold-objekter for vores digitale retningslinjer, så mangler vi kun at oprette område-objekter.
Områder-objekter er de objekter, som har retningslinjenr. (f.eks. Bydelscentre) og retningslinjegeometri.
Find kaldet /omraade/opret i Swagger:
- ParentId skal sættes til id'et på indholdet, som området skal oprettes under - f.eks. indhold1
- Kode skal sættes til koden for den områdetype, som området skal have - f.eks. 110302 (Bydelscentre). Se Kodeliste her.
OBS: Husk at notere id'er til de område-objekter, som bliver oprettet. De bliver relevante ift. opdatering af områderne.
Følgende område-objekter skal oprettes:
- indhold1 skal have oprettet syv områder under sig - område1 til område7
- To af områderne skal have kode 110301 (Bymidter) (område1 og 2)
- To af områderne skal have kode 110302 (Bydelscentre) (område3 og 4)
- Tre af områderne skal have kode 110304 (Lokalcentre) (område5, 6 og 7)
- indhold2 skal have oprettet fire områder under sig - område8 til område11
- To af områderne skal have kode 110501 (Veje) (område8 og 9)
- To af områderne skal have kode 110504 (Stisystemer) (område10 og 11)
- indhold3 skal have oprettet ét område under sig - område12
- Området skal have kode 111501 (Økologiske forbindelser)
Opdater område-objekter
Find kaldet /omraade/opdater/{planid}.
Dette kald kan bruges til at opdatere områdets geometri, overskrift, indholdstekst og retningslinjenr. (retningslinjenr. vil ikke blive opdateret i eksemplerne).
Følgende områder skal opdateres med eksemplerne:
Område1:
{
"geometri": "{\"coordinates\":[[[[571141.582,6324564.523],[570802.026,6324553.856],[570766.471,6324761.856],[571162.915,6324829.412],[571141.582,6324564.523]]],[[[571678.354,6324913.456],[571730.799,6324928.568],[571716.576,6324818.345],[571666.799,6324837.012],[571678.354,6324913.456]]],[[[571573.465,6323919.679],[571521.91,6323957.901],[571260.576,6324019.234],[571273.91,6324061.012],[571550.354,6324002.345],[571602.799,6323959.679],[571573.465,6323919.679]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Bymidte Gandrup ",
"tekst": null
}
Område2:
{
"geometri": "{\"coordinates\":[[[[549315.804,6318448.967],[549324.692,6318338.745],[549383.359,6318075.634],[549530.915,6318102.301],[549475.803,6318322.745],[549607.359,6318354.745],[549587.803,6318422.301],[549690.915,6318473.856],[549737.137,6318536.078],[549685.581,6318544.967],[549577.137,6318491.634],[549445.581,6318459.634],[549315.804,6318448.967]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Bymidte Frejlev",
"tekst": null
}
Område3:
{
"geometri": "{\"coordinates\":[[[[559298.026,6327816.079],[558933.581,6327716.523],[558668.693,6327599.19],[558647.359,6327839.19],[558334.47,6327832.079],[558350.47,6327503.19],[558595.804,6327309.412],[558677.581,6327435.634],[558691.804,6327181.412],[559395.804,6327657.856],[559298.026,6327816.079]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Bydelscenter Bouet",
"tekst": "Bouet består primært af en række store vejsammenføringer og industriområde."
}
Område4:
{
"geometri": "{\"coordinates\":[[[[556727.359,6321062.301],[556869.582,6321053.412],[557218.026,6321439.19],[556946.026,6321798.301],[556787.804,6321999.19],[556540.693,6321965.412],[556501.581,6321627.634],[556451.804,6321472.967],[556601.137,6321401.856],[556846.47,6321355.634],[556727.359,6321062.301]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Bydelscenter Eternitten ",
"tekst": "Eternitten er nyere bydel i Aalborg."
}
Område5:
{
"geometri": "{\"coordinates\":[[[[557973.815,6321541.323],[557888.482,6321523.545],[557984.482,6321217.767],[558169.37,6320776.878],[558521.37,6320225.767],[558581.815,6320318.212],[558340.037,6320730.656],[558123.148,6321217.767],[557973.815,6321541.323]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Lokalcenter Hadsundvej",
"tekst": null
}
Område6:
{
"geometri": "{\"coordinates\":[[[[554770.026,6319174.301],[554645.581,6319049.856],[554400.248,6318873.856],[554633.137,6318656.967],[554910.47,6318866.745],[555134.47,6318749.412],[555271.359,6318973.412],[554770.026,6319174.301]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Lokalcenter Skalborg Bakke ",
"tekst": null
}
Område7:
{
"geometri": "{\"coordinates\":[[[[554533.581,6319846.301],[554325.581,6320002.745],[554211.804,6320223.19],[554206.47,6320372.523],[553998.47,6320408.078],[554185.137,6320644.523],[554554.915,6320560.967],[554515.804,6320324.523],[554853.581,6320280.078],[554533.581,6319846.301]]],[[[554930.026,6320242.745],[554960.248,6320276.523],[555347.804,6320397.412],[555324.692,6320104.078],[555127.359,6320175.19],[554930.026,6320242.745]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Lokalcenter Sofiendal, Skelagervej",
"tekst": null
}
Område8:
{
"geometri": "{\"coordinates\":[[[[579468.845779126,6317260.66656508],[579467.9874999999,6317264.800000001],[579480.39375,6317410.800000001],[579490.7937500001,6317467.200000001],[579501.1937500001,6317510.800000001],[579504.596875,6317512.000000001],[579486.796875,6317429.000000001],[579481.396875,6317372.000000001],[579475.196875,6317301.6],[579471.4212552448,6317260.0425510425],[579471.596875,6317260.000000001],[579470.9968750001,6317257.000000001],[579369.9968750001,6317281.400000001],[579322.196875,6317292.800000002],[579316.196875,6317290.6000000015],[579313.796875,6317287.6000000015],[579312.796875,6317284.6000000015],[579287.996875,6317166.6],[579285.996875,6317169.0],[579293.196875,6317201.399999999],[579304.396875,6317254.6],[579310.596875,6317287.200000001],[579313.396875,6317291.400000001],[579317.596875,6317294.400000001],[579321.596875,6317295.400000001],[579326.9968750001,6317294.800000002],[579335.396875,6317293.000000001],[579468.845779126,6317260.66656508]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Overordnede trafikvej",
"tekst": "Nuværende trafikvej ved Hals Havn."
}
Område9:
{
"geometri": "{\"coordinates\":[[[[579263.1979910716,6317245.995758928],[579263.19375,6317246.0],[579297.19375,6317306.399999999],[579312.3937499999,6317300.399999999],[579315.19375,6317295.199999999],[579320.3937499999,6317296.8],[579337.9937499999,6317292.399999999],[579335.9937499999,6317288.0],[579316.79375,6317290.399999999],[579309.59375,6317294.8],[579300.3937499999,6317300.0],[579269.2649828765,6317240.136986301],[579269.9937499999,6317239.6],[579232.79375,6317177.199999999],[579226.79375,6317182.399999999],[579262.3937499999,6317245.199999999],[579262.4248195043,6317245.17710668],[579263.1979910716,6317245.995758928]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Principelle reservationer til veje",
"tekst": "Reserveret til potentiel trafikvej."
}
Område10:
{
"geometri": "{\"coordinates\":[[[[579418.3937499999,6317520.800000001],[579438.79375,6317518.800000001],[579437.59375,6317512.800000001],[579417.9937499999,6317515.600000001],[579418.3937499999,6317520.800000001]]],[[[579432.39375,6317513.2],[579437.59375,6317511.6],[579431.99375,6317478.0],[579422.3937499999,6317423.600000001],[579412.79375,6317378.400000001],[579391.3184181921,6317281.363315536],[579391.99375,6317281.2],[579390.39375,6317275.2],[579322.39375,6317291.600000001],[579316.79375,6317289.2],[579312.79375,6317283.2],[579302.79375,6317230.4],[579292.3937499999,6317178.000000001],[579287.59375,6317179.200000001],[579309.59375,6317287.600000001],[579312.79375,6317292.000000001],[579316.3937499999,6317295.200000001],[579321.9937499999,6317297.200000001],[579330.79375,6317296.000000001],[579387.0374119751,6317282.398591549],[579385.9937499999,6317282.800000001],[579410.7937500001,6317386.800000001],[579420.39375,6317435.2],[579429.59375,6317500.0],[579432.39375,6317513.2]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Rekreative cykelruter",
"tekst": "Nuværende cykelruter ved Hals Havn."
}
Område11:
{
"geometri": "{\"coordinates\":[[[[579263.1979910716,6317245.995758928],[579263.19375,6317246.0],[579297.19375,6317306.399999999],[579312.3937499999,6317300.399999999],[579315.19375,6317295.199999999],[579320.3937499999,6317296.8],[579337.9937499999,6317292.399999999],[579335.9937499999,6317288.0],[579316.79375,6317290.399999999],[579309.59375,6317294.8],[579300.3937499999,6317300.0],[579269.2649828765,6317240.136986301],[579269.9937499999,6317239.6],[579232.79375,6317177.199999999],[579226.79375,6317182.399999999],[579262.3937499999,6317245.199999999],[579262.4248195043,6317245.17710668],[579263.1979910716,6317245.995758928]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Principelle reservationer til sti og stisystemer",
"tekst": "Reserveret til potentielle sti og stisystemer."
}
Område12:
{
"geometri": "{\"coordinates\":[[[[579445.314,6318726.664],[579470.297,6318508.216],[579476.408,6318454.781],[579466.4,6318452.479],[579475.375,6318443.998],[579462.692,6318424.618],[579457.17,6318416.167],[579456.824,6318415.638],[579453.557,6318414.138],[579453.496,6318412.096],[579326.02,6318406.518],[579321.434,6318406.328],[579319.477,6318406.242],[579274.083,6318404.36],[579251.985,6318403.392],[579252.031,6318402.646],[579202.477,6318395.006],[579204.739,6318483.856],[579203.508,6318483.876],[579203.755,6318490.07],[579205.179,6318548.798],[579252.2,6318545.872],[579288.116,6318543.637],[579323.595,6318541.43],[579323.186,6318564.167],[579320.303,6318724.544],[579343.534,6318725.712],[579445.314,6318726.664]]],[[[579328.658,6317363.359],[579310.335,6317305.149],[579309.835,6317305.149],[579296.681,6317312.817],[579270.93,6317264.975],[579255.203,6317253.476],[579248.74,6317260.958],[579241.521,6317274.977],[579238.268,6317290.25],[579237.756,6317302.242],[579240.604,6317321.876],[579238.485,6317333.378],[579237.451,6317336.013],[579234.978,6317342.32],[579226.585,6317355.384],[579224.345,6317358.868],[579220.537,6317364.801],[579210.163,6317380.501],[579201.383,6317389.534],[579193.876,6317394.313],[579201.337,6317410.244],[579210.661,6317404.742],[579238.553,6317388.282],[579240.33,6317387.233],[579241.53,6317386.143],[579261.492,6317380.916],[579273.243,6317377.839],[579294.503,6317372.275],[579314.595,6317367.03],[579328.658,6317363.359]]],[[[579299.504,6317242.544],[579299.049,6317240.012],[579298.714,6317240.161],[579285.623,6317173.605],[579284.644,6317171.162],[579283.635,6317169.897],[579282.375,6317168.317],[579258.998,6317136.802],[579255.175,6317143.347],[579248.424,6317154.626],[579252.37,6317182.881],[579276.785,6317235.694],[579282.279,6317247.579],[579283.328,6317249.848],[579300.17,6317286.281],[579300.77,6317286.881],[579301.844,6317288.159],[579303.1,6317289.259],[579304.508,6317290.156],[579306.036,6317290.828],[579306.195,6317290.883],[579309.144,6317291.524],[579308.627,6317288.775],[579299.225,6317242.668],[579299.504,6317242.544]]]],\"type\":\"MultiPolygon\"}",
"overskrift": "Økologiske forbindelser og potentielle økologiske forbindelser",
"tekst": null
}
Hent kommuneplantillæg, emne, indhold og områder
De indberettede oplysninger omkring de forskellige planobjekter kan hentes gennem deres hent-kald - f.eks. /kommuneplantillaeg/hent eller /indhold/hent