Dynamische Webanwendung Nun, machen Sie Servlet Service Dao und so weiter Jetzt können Sie Webseiten erstellen, indem Sie mit dem Server kommunizieren ... Studieren Sie ohne Rahmen, dann studieren Sie den Frühlingsrahmen ... Aber ich verstehe die API nicht! Was ist API!
Für dich
So rufen Sie die API mit Spring Boot auf Ich werde ein Memorandum schreiben!
Programmierschnittstelle Es ist nicht schwer. Es ist nur eine Methode. Rufen Sie einfach eine Methode auf einem externen Server auf. Es ist, als würde man das Haus eines anderen bitten, das Gemüse zu teilen.
Ich habe die Zutaten in meinem Haus verwendet und die Methoden auf meinem Server verwendet, um Dienstleistungen zu erbringen. Immerhin möchte ich auch andere verwenden! Deshalb möchte ich manchmal eine externe Methode aufrufen.
Es ist kein Gecko, es ist nicht Freitag, der 13 ..
JavaScript Object Notation
{id: 1245, name: 'Taro', Kommentar: 'Wow Hoi'}
So ein Typ!
Variablenname: der im Inneren
Wie schreibe ich durch Trennen
So schreiben Sie JSON
Selbst wenn Sie das plötzlich sagen, fühlt es sich an wie ...
An erster Stelle ...
Es gibt also ein Argument und einen Rückgabewert. Die Basis-API heißt Service!
Mein Haus → (Ich gebe dir Tomaten!) → Das Haus der anderen Partei
Mein Haus ← (Gurke zur Rückkehr!) ← Das Haus der anderen Partei
Mit anderen Worten
Mein Service → (Anfrage) → Anderer Service
Mein Service ← (Antwort) ← Anderer Service
Für diese Anfrage und Antwort verwende ich Bean, Model, Entity oder ähnliches.
Mit anderen Worten, dieser Typ!
Ich gebe dir eins! Tomatenentität!
TomatoEntity.java
@Component
public class TomatoEntity {
//id
private String id;
//Name
private String name;
//Kommentar
private String comment;
//Unten Getter und 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;
}
//Mit Eclipse
//Alt+Shift+Aus dem S-Menü
//Alt+Wählen Sie die Getter-Setter-Generation in R.
//Alt+Wählen Sie alle mit A.
//Alt+Erstellt mit R! Was
//Wenn Sie die ganze Zeit Alt gedrückt halten, können Sie es sofort schaffen!
}
Gurkenentität für Antwort!
KyuuriEntity.java
@Component
public class KyuuriEntity {
//Datum
private Date day;
//Reihenfolge der Nachrichten
private List<String> message;
//Unten Getter und 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;
}
//Wenn es Frühling ist, ist es eine Anmerkung
//Weil es einen Getter Setter gibt
//Sie müssen keine Methode erstellen...
}
Damit
Mein Service → (Tomatenentität) → Der Service der anderen Partei
Mein Service ← (Kyuuri Entity) ← Anderer Service
Das ist es!
Also werde ich dies in JSON konvertieren und es austauschen
Mein Service → (Tomatenentität) → (Tomate, die zu JSON wurde) → Service der anderen Partei
Mein Service ← (Zurück zur Kyuuri-Entität) ← (JSON Kyuuri) ← Anderer Service
Nun, wenn Sie es so erkennen
Wenn Sie wissen, dass Sie mit JSON austauschen, müssen Sie sich dessen nicht bewusst sein!
Nun, es ist flauschig und es ist schwer, die tatsächliche Situation zu erfassen. Ich denke, es ist schwer zu verstehen Bitte geben Sie ein konkretes Beispiel (verschiedene seltsame, aber leicht verständliche!)
CallApiService.java
@Service
public class CallApiService {
//Stellen Sie zuerst eine Anfrage
TomatoEntity tomato = new Tomatoentity();
tomato.setId("831");
tomato.setName("Tomate");
tomato.setComment("köstlich");
//Stellen Sie eine Anfrage zum Senden an die API
RequestEntity<TomatoEntity> request = RequestEntity
.post(new URI("http://kyuuri.api"))
.accept(MediaType.APPLICATION_JSON)
.body(tomato);
//Die Antwort wird von der API zurückgegeben
ResponseEntity<KyuuriEntity> response = restTemplate
.exchange(request, Kyuuri.class);
}
Kommentar! !!
Erstellen Sie die zuvor festgelegte Tomatenentität und senden Sie sie als Anforderung an die externe API
RequestEntity
ist ein Typ, der vom Spring-Framework bereitgestellt wird
Dies ist die Box, in der die an die API gesendeten Tomaten verpackt sind
Die Tomateneinheit wird in einer Schachtel verpackt und geliefert.
new URI
ist Java.net.URI
Es ist eine Adresse. Du verstehst
Konvertieren Sie mit MediaType.APPLICATION_JSON
von .accept ()
in den JSON-Typ
Wie ich bereits geschrieben habe, bedeutet dies den Austausch mit JSON!
.body ()
ist die Information über den Inhalt der Anfrage
Dieses Mal packe ich die oben hergestellte Tomatenentität
Mit anderen Worten, so etwas
RequestEntity<Art der zu sendenden Entität>Lieblingsname
=
RequestEntity.post(Ziel-URL).accept(zu json).body(Inhalt der gesendeten Entität)
CallApiService.java
@Service
public class CallApiService {
//Stellen Sie zuerst eine Anfrage
TomatoEntity tomato = new Tomatoentity();
tomato.setId("831");
tomato.setName("Tomate");
tomato.setComment("köstlich");
//Stellen Sie eine Anfrage zum Senden an die API
RequestEntity<TomatoEntity> request = RequestEntity
.post(new URI("http://kyuuri.api"))
.accept(MediaType.APPLICATION_JSON)
.body(tomato);
//Die Antwort wird von der API zurückgegeben
ResponseEntity<KyuuriEntity> response = restTemplate
.exchange(request, Kyuuri.class);
}
Eine Antwort wird von der externen API an die zuvor festgelegte Gurkenentität zurückgegeben.
Sie müssen also die Form des Rückgabewerts von der API kennen.
ResponseEntity
ist ein Typ, der vom Spring-Framework bereitgestellt wird
Dies ist die Box, die die Gurke umschließt, die von der API zurückkommt
Die Gurkeneinheit ist in der Schachtel verpackt und kommt an.
Es gibt einen handlichen Typen namens "restTemplate"
Für mehr Informationen
Offizielle Referenz für Rest Templete
.exchange
ist eine Methode von RestTemplete
Wenn die Anforderung in die API eingeht, wird der Rückgabewert als angegebener Typ ausgegeben.
Nun, dies ist nicht die API (Argument, Rückgabewert)
Mit anderen Worten, so etwas
ResponseEntity<Zurücker Entitätstyp>Lieblingsname= restTemplete
.exchange(Variablenname anfordern,Rückentyp.class);
Ursprünglich folgte etwas mehr Methode Einstellungen für das Verbindungs- und Antwortzeitlimit Zertifizierung, gefolgt von Validierung Der Fehlerstatuscode bleibt bei mir.
API macht das! Wenn Sie das verstehen, ist das genug!
Dann endlich
CallApiService.java
@Service
public class CallApiService {
//Stellen Sie zuerst eine Anfrage
TomatoEntity tomato = new Tomatoentity();
tomato.setId("831");
tomato.setName("Tomate");
tomato.setComment("köstlich");
//Stellen Sie eine Anfrage zum Senden an die API
RequestEntity<TomatoEntity> request = RequestEntity
.post(new URI("http://kyuuri.api"))
.accept(MediaType.APPLICATION_JSON)
.body(tomato);
//Die Antwort wird von der API zurückgegeben
ResponseEntity<KyuuriEntity> response = restTemplate
.exchange(request, Kyuuri.class);
//Behandeln Sie den zurückgegebenen Wert
KyuuriEntity kyuuriResponse = response.getBody();
}
Mit .getBody ()
können Sie die hier festgelegte Gurkenentität abrufen.
Darüber hinaus ist der Rückgabewert der API enthalten.
Sie haben gerade eine andere API getroffen!
Jep. Insbesondere sollte jeder experimentieren und verschiedene Dinge ausprobieren. Ich schreibe ein Memorandum bis zum letzten, also mag es chaotisch sein, aber ich bin froh, wenn es hilft!
Bis bald!
Recommended Posts