added intial functionality to call starwars apis

This commit is contained in:
Navneet Khanuja
2024-09-10 11:52:47 -04:00
parent b0ce06fb33
commit ffd00cb0c2
7 changed files with 90 additions and 3 deletions
+3 -2
View File
@@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT"
java {
toolchain {
languageVersion = JavaLanguageVersion.of(22)
languageVersion = JavaLanguageVersion.of(17)
}
}
@@ -20,11 +20,12 @@ configurations {
}
repositories {
mavenCentral()
maven("https://nexus.misoenergy.org/repository/public/")
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-webflux")
compileOnly("org.projectlombok:lombok")
annotationProcessor("org.projectlombok:lombok")
testImplementation("org.springframework.boot:spring-boot-starter-test")
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
distributionUrl=https\://nexus.misoenergy.org/repository/gradle-distributions/gradle-8.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
+6
View File
@@ -1 +1,7 @@
rootProject.name = "kessel-run"
pluginManagement {
repositories {
maven("https://nexus.misoenergy.org/repository/public/")
}
}
@@ -0,0 +1,20 @@
package org.misoenergy.hackday.kessel_run.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.reactive.function.client.WebClient;
@Configuration
public class StarWarsApiConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
@Bean
public WebClient.Builder webClient() {
return WebClient.builder();
}
}
@@ -0,0 +1,21 @@
package org.misoenergy.hackday.kessel_run.controller;
import org.misoenergy.hackday.kessel_run.service.StarWarsApiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class StarWarsApiController {
@Autowired
StarWarsApiService starWarsApiService;
@GetMapping("/class-data")
public String fetchClassData(){
starWarsApiService.getClassData();
return "This is test";
}
}
@@ -0,0 +1,15 @@
package org.misoenergy.hackday.kessel_run.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
@JsonIgnoreProperties(ignoreUnknown = true)
@Getter
@Setter
public class FlavorText {
private String value;
private String type;
}
@@ -0,0 +1,24 @@
package org.misoenergy.hackday.kessel_run.service;
import lombok.extern.slf4j.Slf4j;
import org.misoenergy.hackday.kessel_run.model.FlavorText;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@Service
@Slf4j
public class StarWarsApiService {
@Autowired
RestTemplate restTemplate;
public FlavorText getClassData () {
String url = "https://sw5eapi.azurewebsites.net/api/class";
String response = restTemplate.getForObject(url, String.class);
log.info("response is:" + response);
return null;
}
}