[JAVA] Créer un serveur API Web avec Spring Boot

Aperçu

--Créez une API Web qui renvoie simplement une chaîne avec spring boot

environnement

procédure

Créer un modèle avec spring initializr

  1. Accédez à https://start.spring.io
  2. Sélectionnez comme suit spring-initializr.png
  1. Sélectionnez «Générer le projet» et téléchargez le zip
  2. Décompressez le zip et placez le dossier dans un emplacement approprié --La structure des dossiers ressemble à ceci
.
├── HELP.md
├── README.md
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── api
    │   │               └── ApiApplication.java
    │   └── resources
    │       ├── application.properties
    │       ├── static
    │       └── templates
    └── test
        └── java
            └── com
                └── example
                    └── api
                        └── ApiApplicationTests.java

Préférences Intellij IDEA

--Définissez l'IDE de sorte que le zip créé précédemment puisse être modifié avec Intellij IDEA.

  1. Après avoir lancé Intellij IDEA, sélectionnez ʻimport project` et sélectionnez le dossier que vous venez de décompresser.
  2. Sélectionnez gradle dans ʻImport project from external model`
  3. Cochez «Utiliser l'importation automatique»
  4. Assurez-vous que la Gradle JVM est Java 12
  5. Sélectionnez Terminer
  6. Dans Preference-> Build, Execution, Deployment-> compiler-> annotation processor Cochez «Activer le traitement des annotations» et enregistrez
  7. Ouvrez les paramètres du projet avec command +; et ouvrez les paramètres du projet. Sélectionnez 12 pour chacun des «Project SDK» et «Project language level» et enregistrez

Vérification de build.gradle

build.gradle


plugins {
	id 'org.springframework.boot' version '2.1.7.RELEASE'
	id 'java'
}

apply plugin: 'io.spring.dependency-management'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

--plugins, ʻapply plugin: paramètres du plugin --java: java Vous pourrez effectuer des tâches telles que la compilation du code source et les tests unitaires. --ʻOrg.springframework.boot: vous permet d'effectuer des tâches de démarrage de printemps telles que bootRun --ʻIo.spring.dependency-management: Fournit la fonctionnalité de nomenclature de maven (la capacité de résoudre les versions de bibliothèques dépendantes) introuvable dans gradle -- groupe, version: paramètres du projet --suceCompatibility: Spécifiez la version du JDK utilisé dans le projet --Change de «1.8» à «12» pour utiliser Java 12 cette fois. --repositories: Spécifiez le référentiel pour obtenir les bibliothèques dépendantes --dependencies: Définition des dépendances externes. Le Spring Web Starter spécifié dans initializr est reflété ici. --ʻImplementation: utilisé au moment de la compilation et de l'exécution --testImplementation: utilisé au moment de la compilation et au moment de l'exécution pendant les tests

Lancer l'application

23:07:15: Executing task 'ApiApplication.main()'...

> Task :compileJava
> Task :processResources
> Task :classes

> Task :ApiApplication.main()

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.7.RELEASE)

2019-08-06 23:07:32.447  INFO 20662 --- [           main] com.example.api.ApiApplication           : Starting ApiApplication on xxxnoMacBook-Air.local with PID 20662 (/Users/xxx/dev/spring-boot-api/build/classes/java/main started by xxx in /Users/xxx/dev/spring-boot-api)
2019-08-06 23:07:32.452  INFO 20662 --- [           main] com.example.api.ApiApplication           : No active profile set, falling back to default profiles: default
2019-08-06 23:07:35.060  INFO 20662 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2019-08-06 23:07:35.118  INFO 20662 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-08-06 23:07:35.119  INFO 20662 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.22]
2019-08-06 23:07:35.309  INFO 20662 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-08-06 23:07:35.309  INFO 20662 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2746 ms
2019-08-06 23:07:35.680  INFO 20662 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-08-06 23:07:36.278  INFO 20662 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-08-06 23:07:36.292  INFO 20662 --- [           main] com.example.api.ApiApplication           : Started ApiApplication in 4.996 seconds (JVM running for 5.699)

Créer un contrôleur

HelloWorldController


package com.example.api.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("hello")
public class HelloWorldController {

    @RequestMapping(method = RequestMethod.GET)
    public String getHello() {
        return "hello world!";
    }
}

@RestController

--Annotations attachées à la classe Controller qui est le point de terminaison de l'API Web REST ――Le même effet que l'ajout des deux annotations suivantes -- @ Controller: indique qu'il s'agit d'une classe de contrôleur de MVC -- @ ResponseBody: La valeur de retour de la méthode de classe donnée devient le corps de la réponse tel quel.

@RequestMapping()

--Annotation qui définit le chemin d'accès à l'API Web REST --method = RequestMethod.XXX (XXX: GET, POST, etc.) peut être assigné à chaque méthode HTTP.

Redémarrez l'application

Recommended Posts

Créer un serveur API Web avec Spring Boot
Créez un site Web avec Spring Boot + Gradle (jdk1.8.x)
Créer un environnement de développement Spring Boot avec docker
Créez un serveur Spring Cloud Config en toute sécurité avec Spring Boot 2.0
Créer un micro service avec Spring Boot
Implémentez une API Rest simple avec Spring Security avec Spring Boot 2.0
Créez un site de démonstration simple avec Spring Security avec Spring Boot 2.1
Créez une application avec Spring Boot 2
Créez une application avec Spring Boot
Faisons une API simple avec EC2 + RDS + Spring boot ①
Implémentez une API Rest simple avec Spring Security & JWT avec Spring Boot 2.0
Créez une application Web simple avec Dropwizard
Créez un lot à la demande simple avec Spring Batch
Démarrez le développement d'applications Web avec Spring Boot
Exécutez l'application WEB avec Spring Boot + Thymeleaf
Créez un serveur Web simple avec la bibliothèque standard Java com.sun.net.httpserver
Créons une application Web de gestion de livres avec Spring Boot part1
Créons une application Web de gestion de livres avec Spring Boot part3
Créons une application Web de gestion de livres avec Spring Boot part2
J'ai créé un formulaire de recherche simple avec Spring Boot + GitHub Search API.
Créez un projet de développement d'application Spring Boot avec la commande cURL + tar
Développement d'applications Web Spring Boot2 avec connexion Visual Studio Code SQL Server
Créez une application Spring Boot à l'aide d'IntelliJ IDEA
Créez une application CRUD avec Spring Boot 2 + Thymeleaf + MyBatis
Exécutable serveur avec Spring gradle Comment créer JAR et WAR
Créez votre propre utilitaire avec Thymeleaf avec Spring Boot
Créer un environnement Spring Boot avec Windows + VS Code
Construisez un système WEB avec Spring + Doma + H2DB
Télécharger avec Spring Boot
[Spring Boot] Précautions lors du développement d'une application Web avec Spring Boot et du placement d'une guerre sur un serveur Tomcat indépendant
J'ai essayé de cloner une application Web pleine de bugs avec Spring Boot
Construisez un système WEB avec Spring + Doma + H2DB + Thymeleaf
Hello World (API REST) avec Apache Camel + Spring Boot 2
[Spring Boot] Obtenez des informations utilisateur avec l'API Rest (débutant)
[Compatible JUnit 5] Ecrire un test en utilisant JUnit 5 avec Spring boot 2.2, 2.3
[Spring Boot] Comment créer un projet (pour les débutants)
Personnalisez la réponse aux erreurs de l'API REST avec Spring Boot (Partie 2)
[JUnit 5] Ecrivez un test de validation avec Spring Boot! [Test de paramétrage]
Un mémorandum lors de la création d'un service REST avec Spring Boot
Créer Restapi avec Spring Boot (jusqu'à l'exécution de l'application)
Personnalisez la réponse aux erreurs de l'API REST avec Spring Boot (Partie 1)
J'ai écrit un test avec Spring Boot + JUnit 5 maintenant
Créer une authentification par clé API pour l'API Web dans Spring Security
Construisez un système WEB avec Spring + Doma + H2DB Partie 2
Générer un code à barres avec Spring Boot
Hello World avec Spring Boot
Créer une API XML-RPC avec Wicket
Tester l'API Web avec junit
Implémenter GraphQL avec Spring Boot
Démarrez avec Spring Boot
Bonjour tout le monde avec Spring Boot!
[Spring Boot] Création d'applications Web
Téléchargement de fichiers avec Spring Boot
Spring Boot commençant par copie
Créez un terrain de jeu avec Xcode 12
Spring Boot à partir de Docker
Hello World avec Spring Boot
Définir des cookies avec Spring Boot
Utiliser Spring JDBC avec Spring Boot
Ajouter un module avec Spring Boot