[JAVA] Implementieren Sie einen einfachen Web-REST-API-Server mit Spring Boot + MySQL

Outline Implementieren Sie einen REST-API-Server mit Spring Boot von Grund auf neu. YutaKase6/spring-api-sample

Goal Entry Point Erstellen Sie eine API mit den folgenden Einstiegspunkten.

table

Physischer Name Logischer Name
id Benutzeridentifikation
value Nutzerinformation

Steps...

Erstellen Sie zunächst ein Projekt

Erstellen Sie ein Spring Boot-Projekt mit IntelliJ (Spring Initializr) - Qiita ij.jpeg

Überprüfen Sie über Gradle

Ein wenig über Gradle recherchieren und das von Spring Initializr --Qiita generierte build.gradle lesen

Denken Sie vor der Implementierung über Architektur und Klassendesign nach

Betrachten Sie die von Spring Boot --Qiita implementierte Architektur der Web-API

Ich werde umsetzen

Implementierung der REST-API mit Spring Boot und JPA (Domain Layer) - Qiita Implementieren der REST-API mit Spring Boot und JPA (Infrastructure Layer) - Qiita Implementieren der REST-API mit Spring Boot und JPA (Application Layer) - Qiita

MySQL-Einstellungen

MySQL-Vorbereitung

Install & Start

% brew install mysql
% mysql.server start                                                                  

** Tabelle erstellen **

CREATE TABLE test_users (
  id VARCHAR(18) PRIMARY KEY
  , value TEXT DEFAULT NULL
  , created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
  , updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
mysql> desc test_users;
+------------+-------------+------+-----+-------------------+-----------------------------+
| Field      | Type        | Null | Key | Default           | Extra                       |
+------------+-------------+------+-----+-------------------+-----------------------------+
| id         | varchar(18) | NO   | PRI | NULL              |                             |
| value      | text        | YES  |     | NULL              |                             |
| created_at | timestamp   | NO   |     | CURRENT_TIMESTAMP |                             |
| updated_at | timestamp   | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+------------+-------------+------+-----+-------------------+-----------------------------+
4 rows in set (0.00 sec)

Spring Boot-Einstellungen

Schreiben Sie die Einstellungen in src / main / resources / application.properties. Sie können in yml schreiben, also schreiben Sie in yml. Zunächst umbenennen.

Schreiben Sie die Verbindungseinstellungen mit MySQL.

application.yml


spring:
  datasource:
    url: jdbc:mysql://localhost:3306/<SchemaName>
    username: root
    password:

  jpa:
    hibernate:
      ddl-auto: none

Funktionsprüfung

Lauf

** Von IntelliJ ausführen (Teil 1) ** Sie kann durch Drücken der Wiedergabetaste links neben der Hauptmethode ausgeführt werden.

** Von IntelliJ ausführen (Teil 2) ** Sie können die Hauptklasse aus dem Pulldown-Menü oben rechts auswählen und mit der Wiedergabetaste rechts ausführen.

** Lauf von Gradle **

% ./gradlew bootRun

** Run from Java **

% ./gradlew build
% java -jar build/libs/spring-api-0.0.1-SNAPSHOT.jar

Normale Bestätigung

--Anmeldung

% curl -X POST "http://localhost:8080/v1/users" -H "Content-Type: application/json" -d "{ \"id\": \"id\", \"value\": \"value\"}" -s -w '\nstatus code: %{http_code}\n'

{"id":"id","value":"value"}
status code: 201

--Referenz

% curl "http://localhost:8080/v1/users/id" -s -w '\nstatus code: %{http_code}\n'

{"id":"id","value":"value"}
status code: 200
% curl -X DELETE "http://localhost:8080/v1/users/id" -s -w '\nstatus code: %{http_code}\n'


status code: 204

Bestätigung der Abnormalität (Spring Boot-Standardeinstellung)

% curl "http://localhost:8080/v1/users/hoge" -s -w '\nstatus code: %{http_code}\n'

{"timestamp":"2018-07-20T12:11:51.131+0000","status":500,"error":"Internal Server Error","message":"No message available","path":"/v1/users/hoge"}
status code: 500

--Undefinierte Methode

% curl "http://localhost:8080/v1/users" -s -w '\nstatus code: %{http_code}\n'

{"timestamp":"2018-07-20T12:14:08.013+0000","status":405,"error":"Method Not Allowed","message":"Request method 'GET' not supported","path":"/v1/users"}
status code: 405
% curl "http://localhost:8080/v1/user" -s -w '\nstatus code: %{http_code}\n'

{"timestamp":"2018-07-20T12:14:14.668+0000","status":404,"error":"Not Found","message":"No message available","path":"/v1/user"}
status code: 404

Es gibt viele andere.

Passen Sie die Antwort an, wenn ein Fehler auftritt

Passen Sie die Fehlerantwort der von Spring Boot --Qiita erstellten REST-API an

Stellen Sie Swagger vor

Einführung von Swagger in die REST-API-Qiita von Spring Boot

Erstellen Sie einen Komponententest

Durchführen eines Komponententests mit Spring Boot + JUnit --Qiita

Führen Sie einen Komponententest mit Spring Boot + JUnit + Mockito - Qiita durch

Erstellen Sie einen Funktionstest

Führen Sie einen eigenständigen Funktionstest mit Spring Boot + JUnit + h2 - Qiita durch

Stellen Sie einen Logger vor

Spring Boot-Anwendung mit Spring AOP - Qiita protokollieren

Abdeckung messen

TBA...

Recommended Posts

Implementieren Sie einen einfachen Web-REST-API-Server mit Spring Boot + MySQL
Implementieren Sie eine einfache Rest-API mit Spring Security mit Spring Boot 2.0
Implementieren Sie eine einfache Rest-API mit Spring Security & JWT mit Spring Boot 2.0
Erstellen Sie einen Web-API-Server mit Spring Boot
Implementieren Sie die REST-API mit Spring Boot
Implementieren Sie die REST-API mit Spring Boot und JPA (Application Layer).
Implementieren Sie die REST-API mit Spring Boot und JPA (Infrastructure Layer).
Erstellen wir eine einfache API mit EC2 + RDS + Spring Boot ①
Implementieren Sie die REST-API mit Spring Boot und JPA (Domain Layer Edition).
Implementieren Sie CRUD mit Spring Boot + Thymeleaf + MySQL
Ich habe ein einfaches Suchformular mit Spring Boot + GitHub Search API erstellt.
Erstellen Sie mit Spring Boot eine einfache Such-App
Implementieren Sie GraphQL mit Spring Boot
Hallo Welt (REST API) mit Apache Camel + Spring Boot 2
[Spring Boot] Benutzerinformationen mit Rest API abrufen (Anfänger)
Passen Sie die Antwort auf REST-API-Fehler mit Spring Boot an (Teil 2).
Ein Memorandum beim Erstellen eines REST-Service mit Spring Boot
Erstellen Sie mit Spring Security 2.1 eine einfache Demo-Site mit Spring Security
Passen Sie die Antwort auf REST-API-Fehler mit Spring Boot an (Teil 1).
Feder mit Kotorin --4 REST API Design
Erstellen Sie einen einfachen Webserver mit der Java-Standardbibliothek com.sun.net.httpserver
Erstellen wir eine Buchverwaltungs-Webanwendung mit Spring Boot part1
Lassen Sie uns mit Spring Boot part3 eine Webanwendung für die Buchverwaltung erstellen
Lassen Sie uns mit Spring Boot part2 eine Webanwendung für die Buchverwaltung erstellen
[Anfänger] Versuchen Sie, die REST-API für die Todo-App mit Spring Boot zu schreiben
Erstellen Sie mit Dropwizard eine einfache Webanwendung
Erstellen Sie mit Spring Batch eine einfache On-Demand-Charge
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
Implementieren Sie eine einfache CRUD mit Go + MySQL + Docker
Implementieren Sie die Paging-Funktion mit Spring Boot + Thymeleaf
Führen Sie die WEB-Anwendung mit Spring Boot + Thymeleaf aus
Spring Boot2-Webanwendungsentwicklung mit Visual Studio Code SQL Server-Verbindung
Java-Anfänger haben versucht, mit Spring Boot eine einfache Webanwendung zu erstellen
[Spring Boot] Vorsichtsmaßnahmen beim Entwickeln einer Webanwendung mit Spring Boot und beim Ausführen eines Krieges auf einem unabhängigen Tomcat-Server
Erstellen Sie eine Website mit Spring Boot + Gradle (jdk1.8.x)
Erstellen Sie mit Java + MySQL ein einfaches Bulletin Board
Versuchen Sie, die Anmeldefunktion mit Spring Boot zu implementieren
Erstellen Sie ein WEB-System mit Spring + Doma + H2DB
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Erstellen Sie mit Spring Boot 2.0 einen Spring Cloud Config Server mit Sicherheit
Ich habe versucht, eine Webanwendung voller Fehler mit Spring Boot zu klonen
Einstellungen für die Verbindung zu MySQL mit Spring Boot + Spring JDBC
Erstellen Sie einen Docker-Container für einen einfachen Python-Webserver
Erstellen Sie ein WEB-System mit Spring + Doma + H2DB + Thymeleaf
Ordnen Sie DTO automatisch Entitäten mit der Spring Boot-API zu
[JUnit 5-kompatibel] Schreiben Sie einen Test mit JUnit 5 mit Spring Boot 2.2, 2.3
[JUnit 5] Schreiben Sie einen Validierungstest mit Spring Boot! [Parametrisierungstest]
Führen Sie swagger-ui in die in Spring Boot implementierte REST-API ein
Ich habe jetzt einen Test mit Spring Boot + JUnit 5 geschrieben
Mit Spring Boot herunterladen
Erstellen Sie ein WEB-System mit Spring + Doma + H2DB Part 2
Lassen Sie uns herausfinden, wie Sie mit Request Body mit der REST-API von Spring Boot empfangen können
Behandeln Sie die Java 8-Datums- und Uhrzeit-API mit Thymeleaf mit Spring Boot
Die erste WEB-Anwendung mit Spring Boot-Making a Pomodoro Timer-
Eine Geschichte voller Grundlagen von Spring Boot (gelöst)
Erstellen Sie eine Hello World-Webanwendung mit Spring Framework + Jetty
Versuchen Sie, die Springcode-Such-API mit Spring Boot aufzurufen
Einführung von Spring Boot2, einem Java-Framework für die Webentwicklung (für Anfänger)
Ich habe mit Spring Boot ein einfaches MVC-Beispielsystem erstellt
[Java] Beispielprojekt zum Entwickeln von Webanwendungen mit Spring Boot