Aufrufen und Verwenden der API in Java (Spring Boot)

Annahme

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!

Was ist API?

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.

Der Austausch ist JSON

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 ...

API ist auch eine Methode

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!

Genauer!

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! !!

·Anfrage

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)

·Antwort

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!

damit?

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

Aufrufen und Verwenden der API in Java (Spring Boot)
Verwendung von CommandLineRunner im Spring Batch von Spring Boot
Wie man Lombok im Frühling benutzt
Verwendung von ModelMapper (Spring Boot)
Wie verwende ich Klassen in Java?
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
So legen Sie ein Profil mit annotationsbasierter Konfiguration im Spring-Framework fest und verwenden es
[Java] Verwendung der FileReader-Klasse und der BufferedReader-Klasse
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Verwendung des eingebauten h2db mit Federstiefel
Verwendung von Spring Boot-Sitzungsattributen (@SessionAttributes)
So fügen Sie in Spring Boot einen Klassenpfad hinzu
Verwendung der Java-API mit Lambda-Ausdrücken
So binden Sie mit einer Eigenschaftendatei in Spring Boot
[Java] Verwendung der Kalenderklasse und der Datumsklasse
[Java] Verwendung von Map
Verwendung von Java Optional
Verwendung der Java-Klasse
[Java] Verwendung von removeAll ()
Verwendung von Java Map
Verwendung von Java-Variablen
Aufrufen von Funktionen in großen Mengen mit Java Reflection
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
Zusammenfassung der Java-Kommunikations-API (1) Verwendung von Socket
Zusammenfassung der Java-Kommunikations-API (3) Verwendung von SocketChannel
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
Führen Sie swagger-ui in die in Spring Boot implementierte REST-API ein
Zusammenfassung der Java-Kommunikations-API (2) Verwendung von HttpUrlConnection
Verwendung des In-Memory-Job-Repositorys mit Spring Batch
Hinweise zur Verwendung regulärer Ausdrücke in Java
Verwendung von StringBurrer und Arrays.toString.
Verwendung von HttpClient (Get) von Java
So ändern Sie den Einstellungswert von application.properties beim Booten im Frühjahrsstart
Verwendung von EventBus3 und ThreadMode
Hinweise zur Verwendung von Spring Data JDBC
Behandeln Sie die Java 8-Datums- und Uhrzeit-API mit Thymeleaf mit Spring Boot
So implementieren Sie den Authentifizierungsprozess durch Angabe von Benutzername und Kennwort in Spring Boot
Verwendung von HttpClient (Post) von Java
[Java] Verwendung der Join-Methode
So stellen Sie Spring Boot + PostgreSQL ein
Aufrufen von Klassen und Methoden
Wie man Gleichheit und Gleichheit benutzt (wie man Gleichheit benutzt)
[Verarbeitung × Java] Verwendung von Variablen
Was ist in "Java 8 bis Java 11" passiert und wie wird eine Umgebung erstellt?
Verwendung von InjectorHolder in OpenAM
Implementieren Sie die REST-API mit Spring Boot
Verwendung des Java-Aufzählungstyps (Enum) in Mapper XML von MyBatis
Erstellen Sie eine API zum Senden und Empfangen von Json-Daten mit Spring
[JavaFX] [Java8] Verwendung von GridPane
Gründe, Servlet und JSP in der Java-Entwicklung getrennt zu verwenden
Verwendung von Klassenmethoden [Java]
[Java] Verwendung von List [ArrayList]
So benennen Sie Variablen in Java
So entwickeln und registrieren Sie eine Sota-App in Java
Unterschiede im Umgang mit Zeichenfolgen zwischen Java und Perl
[Verarbeitung × Java] Verwendung von Arrays