Existe-t-il un moyen d'imprimer le contenu de l'API sur le serveur localhost ?
J'essaie d'apprendre le printemps et en même temps de construire un petit projet et j'ai rencontré un problème. Tout fonctionne comme il se doit, mais je n'arrive pas à comprendre comment utiliser le contenu de la méthode de l'API qui est imprimé dans ma console Eclipse.
Dans mon contrôleur, j'ai toutes les informations nécessaires pour utiliser la méthode spécifique de l'API. J'ai mappé l'URL en utilisant "@GetMapping("/seasons") et j'utilise un extrait de code d'une API en ligne (avec clé). Et dans le dossier VIEW (en gros, où je conserve le JSP files, exemple : seasons.jsp) J'essaie de récupérer des données à partir de la réponse de l'API.
Voici la réponse de l'API : "{"get":"seasons","parameters":[],"errors":[],"results":10,"response":[2012,2013,2014,2015,2016,2017,2018,2019,2020,2021]}
"
MISE À JOUR :
Voici un code de référence :
@GetMapping("/seasons")
public String seasons(Model theModel) throws IOException, InterruptedException {
List<Integer> SeasonsList = new ArrayList<>();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api-formula-1.p.rapidapi.com/seasons"))
.header("x-rapidapi-host", "api-formula-1.p.rapidapi.com")
.header("x-rapidapi-key", "5a6f44fa10msh40be2be8d20bc5bp18a190jsnb4478dcbc8f1")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
JSONObject seasonsObject = new JSONObject(response.body());
for(int i = 0; i < seasonsObject.length(); i++) {
JSONArray object = seasonsObject.getJSONArray("response");
for(int j = 0 ; i < object.length(); j++) {
SeasonsList.add(object.getInt(j));
}
System.out.println(object);
}
theModel.addAttribute("theSeasons", SeasonsList);
return "seasons";
}
Et le fichier HTML :
<html xmlns:th ="http://www.thymeleaf.org">
<head>
<title>The Formula 1 Seasons are</title>
</head>
<body>
<p th:text ="'The seasons are: ' + ${theSeasons}"/>
</body>
</html>
Ce que je veux, c'est montrer "Les saisons sont : 2012, 2013, 2014..etc.
Et j'obtiens une erreur dans la console : "org.json.JSONException : JSONArray[10] introuvable."
Veuillez me faire savoir si vous avez besoin de détails sur mon projet.
Montrez la meilleure réponse