Application Web dynamique Eh bien, faites un service Servlet Dao ou quelque chose comme ça Vous pouvez maintenant créer des pages Web en communiquant avec le serveur ... Etudiez sans framework, puis étudiez le framework Spring ... Mais je ne comprends pas l'API! Qu'est-ce que l'API!
À toi
Comment appeler l'API à l'aide de Spring Boot J'écrirai un mémorandum!
Interface de programmation d'applications Ce n'est pas difficile. C'est juste une méthode. Appelez simplement une méthode sur un serveur externe. C'est comme demander à quelqu'un d'autre de partager les légumes.
J'avais l'habitude d'utiliser les ingrédients dans ma maison et d'utiliser les méthodes de mon serveur pour fournir des services. Après tout, je veux aussi en utiliser d'autres! C'est pourquoi je souhaite parfois appeler une méthode externe.
Ce n'est pas un gecko, ce n'est pas le vendredi 13
JavaScript Object Notation
{id: 1245, nom: 'Taro', commentaire: 'Wow Hoi'}
Un tel gars!
Nom de la variable: celui à l'intérieur
Comment écrire en séparant
Voici comment écrire JSON
Même si vous dites soudainement ça, c'est comme si ...
En premier lieu ...
Il y a donc un argument et une valeur de retour. L'API de base s'appelle Service!
Ma maison → (Je te donnerai des tomates!) → La maison de l'autre partie
Ma maison ← (Le concombre à revenir!) ← La maison de l'autre partie
En d'autres termes
Mon service → (Demande) → Autre service
Mon service ← (Réponse) ← Autre service
Pour cette demande et cette réponse, j'utilise Bean, Model, Entity ou quelque chose comme ça.
En d'autres termes, ce gars!
Je vais vous en donner un! Entité de la tomate!
TomatoEntity.java
@Component
public class TomatoEntity {
//id
private String id;
//Nom
private String name;
//commentaire
private String comment;
//Ci-dessous, getter et setter
public String getId() {
return id;
}
public String setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public String setName(String name) {
this.name = name;
}
public String getComment() {
return comment;
}
public String setComment(String comment) {
this.comment = comment;
}
//Avec Eclipse
//Alt+Shift+Depuis le menu S
//Alt+Sélectionnez la génération de setter getter dans R
//Alt+Tout sélectionner avec A
//Alt+Créé avec R! Quoi
//Si vous continuez d'appuyer sur Alt tout le temps, vous pouvez le faire immédiatement!
}
Entité de concombre pour réponse!
KyuuriEntity.java
@Component
public class KyuuriEntity {
//Date
private Date day;
//Séquence des messages
private List<String> message;
//Ci-dessous, getter et setter
public Date getDay() {
return day;
}
public Date setDay(String day) {
this.day = day;
}
public List<String> getMessage() {
return message;
}
public list<String> setMessage(List<String> message) {
this.message = message;
}
//Eh bien, si c'est le printemps, c'est une annotation
//Parce qu'il y a un setter getter
//Tu n'as pas à faire de méthode...
}
Alors
Mon service → (Entité Tomato) → Le service de l'autre partie
Mon service ← (Entité Kyuuri) ← Autre service
C'est tout!
Donc, je vais le convertir en JSON et l'échanger
Mon service → (Tomato Entity) → (Tomato qui est devenue JSON) → Service de l'autre partie
Mon service ← (Retour à l'entité Kyuuri) ← (JSON Kyuuri) ← Autre service
Eh bien, si tu le reconnais comme ça
Si vous savez que vous échangez avec JSON, vous n'avez pas besoin d'en être conscient!
Eh bien, c'est duveteux et c'est difficile de saisir la situation réelle, je pense que c'est difficile à comprendre Veuillez donner un exemple concret (divers étranges mais faciles à comprendre!)
CallApiService.java
@Service
public class CallApiService {
//Faites d'abord une demande
TomatoEntity tomato = new Tomatoentity();
tomato.setId("831");
tomato.setName("Tomate");
tomato.setComment("délicieux");
//Faire une demande à envoyer à l'API
RequestEntity<TomatoEntity> request = RequestEntity
.post(new URI("http://kyuuri.api"))
.accept(MediaType.APPLICATION_JSON)
.body(tomato);
//La réponse est renvoyée par l'API
ResponseEntity<KyuuriEntity> response = restTemplate
.exchange(request, Kyuuri.class);
}
Commentaire! !!
Créez l'entité de tomate que vous avez définie précédemment et envoyez-la en tant que demande à l'API externe
RequestEntity
est un type fourni par le framework Spring
C'est la boîte qui enveloppe les tomates envoyées à l'API
L'entité tomate est emballée dans une boîte et livrée.
new URI
est Java.net.URI
C'est une adresse. Tu comprends
Convertir en type JSON avec MediaType.APPLICATION_JSON
of .accept ()
Comme je l'ai écrit plus tôt, cela signifie échanger avec JSON!
.body ()
est l'information du contenu de la requête
Cette fois, j'emballe l'entité tomate faite ci-dessus
En d'autres termes, ce genre de chose
RequestEntity<Type d'entité à envoyer>Nom préféré
=
RequestEntity.post(URL de destination).accept(à json).body(Contenu de l'entité envoyée)
CallApiService.java
@Service
public class CallApiService {
//Faites d'abord une demande
TomatoEntity tomato = new Tomatoentity();
tomato.setId("831");
tomato.setName("Tomate");
tomato.setComment("délicieux");
//Faire une demande à envoyer à l'API
RequestEntity<TomatoEntity> request = RequestEntity
.post(new URI("http://kyuuri.api"))
.accept(MediaType.APPLICATION_JSON)
.body(tomato);
//La réponse est renvoyée par l'API
ResponseEntity<KyuuriEntity> response = restTemplate
.exchange(request, Kyuuri.class);
}
Une réponse est renvoyée de l'API externe à l'entité de concombre définie précédemment.
Vous devez donc connaître la forme de la valeur de retour de l'API.
ResponseEntity
est un type fourni par le framework Spring
C'est la boîte qui enveloppe le concombre qui revient de l'API
L'entité concombre est emballée dans la boîte et arrive.
Il y a un type pratique appelé restTemplate
Pour plus d'informations
Référence officielle de Rest Templete
.exchange
est une méthode de RestTemplete
Lorsque la demande entre dans l'API, la valeur de retour est sortie en tant que type spécifié.
Eh bien, ce n'est pas l'API (argument, valeur de retour)
En d'autres termes, ce genre de chose
ResponseEntity<Type d'entité arrière>Nom préféré= restTemplete
.exchange(Demander le nom de la variable,Type de dos.class);
À l'origine, un peu plus de méthode a suivi Paramètres de délai de connexion et de réponse Certification, suivie de validation Le code d'état d'erreur me colle.
L'API fait cela! Si vous comprenez cela, cela suffit!
Enfin
CallApiService.java
@Service
public class CallApiService {
//Faites d'abord une demande
TomatoEntity tomato = new Tomatoentity();
tomato.setId("831");
tomato.setName("Tomate");
tomato.setComment("délicieux");
//Faire une demande à envoyer à l'API
RequestEntity<TomatoEntity> request = RequestEntity
.post(new URI("http://kyuuri.api"))
.accept(MediaType.APPLICATION_JSON)
.body(tomato);
//La réponse est renvoyée par l'API
ResponseEntity<KyuuriEntity> response = restTemplate
.exchange(request, Kyuuri.class);
//Gérer la valeur renvoyée
KyuuriEntity kyuuriResponse = response.getBody();
}
Avec .getBody ()
, vous pouvez récupérer l'entité concombre comme défini ici.
De plus, la valeur de retour de l'API est incluse à l'intérieur.
Vous venez de frapper une autre API!
Ouaip. Plus précisément, tout le monde devrait expérimenter et essayer diverses choses. J'écris un mémorandum jusqu'au dernier, donc ça peut être compliqué, mais je suis content que ça aide!
À bientôt!
Recommended Posts