AI Flashcards
Hvad er en API(Application Programming Interface) , og hvorfor bruger vi den i projektet?
en måde at kommunikere med et andet system over internettet. I projektet bruger vi API’er til at få AI-svar fra fx OpenAI.
Hvad er WebClient, og hvordan bruges den?
bruges til at sende HTTP-kald til eksterne API’er. Det er en moderne måde at hente data fra fx OpenAI eller andre AI-tjenester.
Hvad er Mono, og hvad gør .block() i WebClient?
Mono repræsenterer et fremtidigt svar (asynkront). .block() venter på svaret og gør det synkront – dvs. programmet stopper og venter, til svaret er klar
Hvad er en DTO (Data Transfer Object)?
en Java-klasse, som matcher den data, vi modtager fra en API eller selv sender ud. Det gør det nemt at arbejde med JSON-data i Java.
Hvad betyder caching, og hvordan bruges det i projektet?
Caching betyder at gemme et svar (fx fra OpenAI) i databasen. Hvis samme spørgsmål stilles igen, hentes svaret hurtigt og gratis fra databasen.
Hvad er et endpoint i Spring Boot?
Et endpoint er en URL, som din backend tilbyder, fx /chat?message=hej. Det laves med @RestController og @GetMapping i Java.
Hvad er @GetMapping og @RequestParam?
- @GetMapping definerer et endpoint, som kan kaldes med GET.
- @RequestParam bruges til at hente en værdi fra URL’en, fx navnet i /chat?name=kim.
Hvorfor bruger vi POST til at kalde OpenAI?
Fordi vi sender en besked (prompt) med indhold – og det gøres normalt med POST, da det er mere sikkert og fleksibelt end GET.
Hvordan ser et simpelt API-kald med WebClient ud?
Hvad er forskellen på retrieve() og exchange() i WebClient?
- retrieve() er den nemme måde, hvor du bare henter svaret.
- exchange() giver dig mere kontrol over statuskode og headers.
Hvad er en JSON, og hvorfor bruger vi det?
en måde at strukturere data på. Det er det format, vi sender og modtager fra API’er som OpenA
Hvad betyder asynkron kode?
Det betyder, at programmet ikke venter på et svar, men kører videre. Svaret håndteres senere – godt hvis du kalder mange API’er.
Hvordan kan vi kalde flere API’er parallelt?
Vi kan bruge Mono.zip(…) til at samle flere Mono objekter, så vi kan vente på, at de alle er færdige på én gang – det er hurtigere.
Hvad gør @CrossOrigin i et Spring Boot-projekt?
tillader, at din backend kan modtage kald fra en frontend, der kører på en anden adresse (domæne/port). Det løser problemer med CORS (Cross-Origin Resource Sharing).
Hvad er WebClient.Builder, og hvorfor bruger man det?
bruges til at oprette en WebClient med en fast base-URL og evt. fælles headers. Det gør din kode nemmere at genbruge
Hvad gør @Configuration i Spring Boot?
markerer en klasse, som definerer konfiguration – fx WebClient, databaseforbindelser eller beans, som Spring skal styre.
Hvad er forskellen på Mono<T> og Flux<T>?</T></T>
- Mono<T> = én ting kommer tilbage (fx ét svar eller én liste).</T>
- Flux<T> = mange ting kommer tilbage (som en strøm af elementer).</T>