Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Innan du sätter igång med detta, läs igenom: Utveckling
Där har vi författat viktiga saker att känna till som systemutvecklare på Sundsvalls Kommun.

1. Repository (repo)

Open-source repos placeras skapas här: https://github.com/SundsvallskommunKontakta Per Persson för beställning av repo.

...

Interna repos placeras skapas här: https://gitlab.sundsvall.se
Kontakta Per Persson för beställning av repo.

Guide SSH GitLab

För att kunna ansluta mot GitLab, som ligger på Sundsvalls kommuns interna nät så krävs det lite konfigurering.

.sundsvall

...

Klicka på ”Gitlab SSH”.

...

Följ instruktionerna på skärmen med att installera en klient på datorn och sedan ladda in config-filen in i klienten. Man kan behöva klicka på Gitlab SSH en gång till efter man har laddat in configen.

  1. MG kommer nu skapa en tunnel till dig som gör att localhost:1494 pekar mot GitLab servern.

...

Skapa upp SSH nyckelpar och lägg in det i din profil i GitLab. För att komma åt GitLab krävs det att du har en dator som kommer åt det interna nätet. Om du inte har det, ta hjälp från någon som har det.

  1. Guide för skapande av SSH-nyckel: https://dev.to/sndrx/how-to-set-up-an-ssh-key-and-use-it-in-gitlab--42p1

  2. Namnsätt din privata nyckel till: id_gitlab och placera den under ~/.ssh/

...

.

...

Verifiera att din SSH-nyckel fungerar med följande kommando: ssh git@localhost –p 1494

...

se

...

Nu krävs det att du skapar upp/ändrar din ”config” fil i ssh. Den är placerad i ~/.ssh/config

  1. Lägg till följande:
    Host localhost
    HostName localhost
    User git
    Port 1494
    IdentityFile ~/.ssh/id_gitlab

...

2. Skapande av applikation

  1. Surfa in på: https://codestart.quarkusspring.io/ och ange följande:

    1. Project - Maven Project

    2. Spring Boot - Ta den senaste stabila versionen, för tillfället 2.6.2

    3. Group - Ange se.sundsvall . Detta blir grunden i paketstrukturen.

    4. Artifact - Ange namnet på din applikation.

    5. Buildtool - Låt vara Maven.

    6. Version - Låt vara “1.0.0-SNAPSHOT”.

    7. Example code - Välj om du vill ha några exempelklasser. Om du väljer detta kommer paketstrukturen genereras, vilket kan vara skönt. Kom dock ihåg att ersätta exempelklasserna.

    Under “Pick your extensions
    1. Name - Återigen namnet på din applikation, fast “vanligt” namn.

    2. Description - En kortfattad beskrivning av applikationen.

    3. Packaging - Jar.

    4. Java - Minst 11

  2. Under “Dependencies” kan du lägga till Maven-dependencies. Följande kan vara bra att ha, men det är självklart beroende på vad du ska bygga:

    1. Image RemovedImage Added
  3. Klicka på “Generate your application” och ladda ned som .zip-fil.

  4. Packa upp innehållet till ditt repo. Döp om mappen från ditt applikationsnamn till “kod” och ersätt den befintliga “kod”-mappen i repot.

  5. Nu är det äntligen dags att koda!

3. Biolerplatekod

Lägg till följande i pom:en för att exponera swagger-ui:

Code Block
languagexml
<dependency>
	<groupId>org.springdoc</groupId>
	<artifactId>springdoc-openapi-ui</artifactId>
	<version>1.6.4</version>
</dependency>

Skapa en klass för att snygga till OpenAPI-infon (Inte nödvändigt):

Code Block
languagejava
package se.sundsvall.demo;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class OpenApiConfig {
    
    @Bean
    OpenAPI openApi() {
        return new OpenAPI()
                .info(new Info().title("Demo Application")
                .version("1.0.0")
                .description("Description")
                .contact(new Contact().name("Contact Name")
                        .email("noreply@sundsvall.se")
                        .url("https://sundsvall.se")));
    }
}

Skapa även en enkel Controller-klass för att ha någonting att anropa:

Code Block
languagejava
package se.sundsvall.demo;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "/demo")
public class DemoResource {
    
    @GetMapping(value = "/helloThere")
    public ResponseEntity<String> helloThere() {
        return ResponseEntity.ok("General Kenobi!");
    }
}

För att starta applikationen kör: mvn spring-boot:run. Navigera sedan till http://localhost:8080/swagger-ui/index.html för att testa ditt API.