[JAVA] Implementieren Sie die REST-API mit Spring Boot und JPA (Application Layer).

Implementierung eines einfachen Web-REST-API-Servers mit Spring Boot + MySQL - Qiita

Outline Implementieren Sie die Anwendungsschicht gemäß dem folgenden Entwurf. Implementierung eines einfachen Web-REST-API-Servers mit Spring Boot + MySQL - Qiita

Implementieren Sie die folgenden zwei Klassen.

├── application
│   ├── controller
│   │   └── UserController.java
│   └── resource
│       └── UserBody.java

UserBody.java Eine Klasse, die den Textkörper zum Zeitpunkt einer POST-Anforderung zur Benutzerregistrierung abbildet. Es verfügt über einen Validierungs- und Konvertierungsprozess zum Domänenobjekt.

UserBody.java


package com.example.springapi.application.resource;

import com.example.springapi.domain.object.User;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 *Body-Mapping-Klasse anfordern
 */
@Data
public class UserBody {

    @NotBlank
    @Size(max = 18)
    private String id;

    @NotBlank
    private String value;

    /**
     *In Domänenobjekt konvertieren
     *
     * @Domain-Objekt zurückgeben
     */
    public User toDomainUser() {
        return User.builder()
                .id(this.id)
                .value(this.value)
                .build();
    }
}

UserController.java

UserController.java


package com.example.springapi.application.controller;

import com.example.springapi.application.exception.NotFoundException;
import com.example.springapi.application.resource.ErrorResponse;
import com.example.springapi.application.resource.UserBody;
import com.example.springapi.domain.object.User;
import com.example.springapi.domain.service.UserService;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.HttpStatus;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

/**
 *Benutzergesteuerte Steuerung
 */
@RestController
@RequiredArgsConstructor
@RequestMapping(path = "/v1/users")
public class UserController {

    @NonNull
    private final UserService userService;

    /**
     *Benutzersuche
     *
     * @param id Benutzer-ID, nach der Sie suchen möchten
     * @wiederkehrender Benutzer
     */
    @GetMapping("{id}")
    @ResponseStatus(HttpStatus.OK)
    public User findById(@PathVariable("id") String id) {
        return this.userService.findById(id).orElseThrow(RuntimeException::new);
    }

    /**
     *Benutzer erstellt und aktualisiert
     *
     * @param userBody Anfragetext
     * @Benutzer nach dem Update zurückgeben
     */
    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    public User save(@RequestBody @Validated UserBody userBody) {
        return this.userService.save(userBody.toDomainUser());
    }

    /**
     *User Löschung
     *
     * @param id Benutzer-ID, die Sie löschen möchten
     */
    @DeleteMapping("{id}")
    @ResponseStatus(HttpStatus.NO_CONTENT)
    public void deleteById(@PathVariable("id") String id) {
            this.userService.deleteById(id);
    }
}

* Verwendete Annotation

@RestController Erweiterte Annotation von @Controller. @Controller ist ein Alias für @Compornent, wie @Service und @Repository. Darüber hinaus weist @RestController jeder Methode @ResponseBody zu.

@ResponseBody Durch die Übergabe an die Methode wird das Java-Objekt des Rückgabewerts in json konvertiert.

@RequestMapping Eine Anmerkung, die den im Argumentpfad angegebenen Pfad der Methode in der in der Argumentmethode angegebenen HTTP-Methode zuordnet. Durch Zuweisen zur Klasse wird der Pfad des Arguments zum Basispfad der zur Klasse gehörenden Methode.

@***Mappring Erweiterte Annotation von @RequestMapping. Eine Anmerkung, bei der die Methode weggelassen werden kann.

@ResponseStatus Eine Anmerkung, mit der Sie einen Statuscode angeben können.

@PathVariable Eine Anmerkung, die Pfadparameter Argumenten zuordnet.

@RequestBody Eine Anmerkung, die den Hauptteil einer Anforderung einem Argument zuordnet.

@Validated Eine Annotation, die die Validierungsanmerkung aktiviert, die der zugeordneten Klasse gegeben wird, indem sie gleichzeitig mit @RequestBody gegeben wird.

Recommended Posts

Implementieren Sie die REST-API mit Spring Boot und JPA (Application Layer).
Implementieren Sie die REST-API mit Spring Boot und JPA (Infrastructure Layer).
Implementieren Sie die REST-API mit Spring Boot und JPA (Domain Layer Edition).
Implementieren Sie eine einfache Rest-API mit Spring Security mit Spring Boot 2.0
Implementieren Sie die REST-API mit Spring Boot
Implementieren Sie eine einfache Rest-API mit Spring Security & JWT mit Spring Boot 2.0
Implementieren Sie einen einfachen Web-REST-API-Server mit Spring Boot + MySQL
[Anfänger] Versuchen Sie, die REST-API für die Todo-App mit Spring Boot zu schreiben
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).
Passen Sie die Antwort auf REST-API-Fehler mit Spring Boot an (Teil 1).
Feder mit Kotorin --4 REST API Design
Behandeln Sie die Java 8-Datums- und Uhrzeit-API mit Thymeleaf mit Spring Boot
Erstellen Sie eine Anfrage-App mit Spring Boot
Stellen Sie mit spring boot + spring jpa eine Verbindung zur Datenbank her und führen Sie die CRUD-Operation durch
Implementieren Sie die Spring Boot-Anwendung in Gradle
Das Erstellen einer REST-API mit Spring JPA-Daten mit REST und Lombok ist unglaublich einfach.
Verarbeitung beim Starten einer Anwendung mit Spring Boot
HTTPS mit Spring Boot und Let's Encrypt
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
Starten Sie die Nginx + Spring Boot-Anwendung mit Docker-Compose
Implementieren Sie CRUD mit Spring Boot + Thymeleaf + MySQL
Implementieren Sie die Paging-Funktion mit Spring Boot + Thymeleaf
Führen Sie die WEB-Anwendung mit Spring Boot + Thymeleaf aus
Implementierungsmethode für Multi-Datenquelle mit Spring Boot (Mybatis und Spring Data JPA)
Konfigurieren Sie die Spring Boot-Anwendung mit dem Maven Multi-Modul
Versuchen Sie, die Anmeldefunktion mit Spring Boot zu implementieren
Erstellen Sie einen Web-API-Server mit Spring Boot
Spring Boot 2.3 Verfügbarkeit von Anwendungen
Mit Spring Boot herunterladen
In die Spring Boot-Anwendung integrierte Integration von Tomcat, Apache und WebSocket
Versuchen Sie es mit einem DI-Container mit Laravel und Spring Boot
Wechseln Sie die Umgebung mit Spring Boot application.properties und @ Profile-Annotation
Ordnen Sie DTO automatisch Entitäten mit der Spring Boot-API zu
Versuchen Sie, OpenID Connect mit Keycloak (Spring Boot-Anwendung) zu verwenden.
Verwendungshinweis zu Spring Security: Zusammenarbeit mit Spring MVC und Boot
Spring Boot mit Spring Security Filter-Einstellungen und Suchtpunkten
Ein Memorandum beim Erstellen eines REST-Service mit Spring Boot
Führen Sie swagger-ui in die in Spring Boot implementierte REST-API ein
Versuch, SSR Vue.js mit Spring Boot und GraalJS zu verwenden
Verbinden Sie Spring Boot und Angular typsicher mit OpenAPI Generator
CSRF-Gegenmaßnahmenrichtlinie und Implementierungsbeispiel in einer REST-Anwendung unter Verwendung von "Spring Boot" + "EXT JS"
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
Frühling mit Kotorin --- 8. Aufbewahrungsschicht
Ich habe das Spring Boot-Einführungshandbuch [Zugriff auf Daten mit JPA] ausprobiert.
Beginnen Sie mit Spring Boot
Hallo Welt mit Spring Boot!
[Spring Boot] Erstellung von Webanwendungen
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Datei-Upload mit Spring Boot
Spring Boot beginnt mit dem Kopieren
Erstellen wir eine einfache API mit EC2 + RDS + Spring Boot ①
Bis INSERT und SELECT für Postgres mit Spring Boot und Thymianblatt
Aufrufen und Verwenden der API in Java (Spring Boot)
Feder mit Kotorin ―― 7. Serviceschicht
Versuchen Sie, die Springcode-Such-API mit Spring Boot aufzurufen
CICS-Java-Anwendung ausführen- (4) Spring Boot-App
Spring Boot beginnend mit Docker