Maison Java javaDidacticiel Comment implémenter l'annotation API et la génération de documents basés sur Spring Boot

Comment implémenter l'annotation API et la génération de documents basés sur Spring Boot

Jun 22, 2023 pm 12:04 PM
spring boot api注释 文档生成

En tant que l'un des frameworks Java les plus populaires à l'heure actuelle, Spring Boot présente les avantages d'un développement rapide, d'une intégration élevée et de tests faciles. Au cours du processus de développement, nous devons souvent rédiger des documents API pour faciliter la collaboration front-end et back-end et la maintenance future des projets.

Cependant, l'écriture manuelle de la documentation de l'API prend beaucoup de temps et est sujette aux erreurs. Cet article explique donc comment utiliser les propres annotations de Spring Boot et certains outils pour générer automatiquement des commentaires et de la documentation sur l'API.

1. Swagger

Swagger est actuellement l'un des outils d'annotation et de génération de documentation d'API Java les plus populaires. Il peut générer automatiquement de la documentation API en analysant les annotations dans les projets Spring, et peut également fournir une interface interactive d'exploration d'API.

Pour utiliser Swagger, vous devez ajouter les dépendances suivantes à votre projet Spring Boot :

<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger2</artifactId>
   <version>2.9.2</version>
</dependency>

<dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger-ui</artifactId>
   <version>2.9.2</version>
</dependency>
Copier après la connexion

Ensuite, ajoutez l'annotation @EnableSwagger2 dans la classe de démarrage Spring Boot, comme indiqué Ci-dessous:

@SpringBootApplication
@EnableSwagger2
public class DemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
}
Copier après la connexion

Ensuite, vous pouvez ajouter les annotations fournies par Swagger à votre méthode Controller pour générer la documentation API.

Par exemple, ce qui suit est un simple UserController :

@RestController
@RequestMapping("/user")
public class UserController {
  
   @ApiOperation(value = "获取用户列表", notes = "获取所有用户的列表")
   @GetMapping("/list")
   public List<User> getUserList() {
      return userService.getUserList();
   }
  
   @ApiOperation(value = "创建用户", notes = "根据User对象创建用户")
   @PostMapping("/")
   public String postUser(@RequestBody User user) {
      userService.saveUser(user);
      return "success";
   }
  
   @ApiOperation(value = "获取用户详情", notes = "根据id获取用户的详情")
   @GetMapping("/{id}")
   public User getUser(@PathVariable Long id) {
      return userService.getUserById(id);
   }
  
   @ApiOperation(value = "更新用户信息", notes = "根据id更新用户的信息")
   @PutMapping("/{id}")
   public String putUser(@PathVariable Long id, @RequestBody User user) {
      User u = userService.getUserById(id);
      if (u == null) {
          return "用户不存在";
      }
      userService.updateUser(user);
      return "success";
   }
  
   @ApiOperation(value = "删除用户", notes = "根据id删除用户")
   @DeleteMapping("/{id}")
   public String deleteUser(@PathVariable Long id) {
      User u = userService.getUserById(id);
      if (u == null) {
          return "用户不存在";
      }
      userService.deleteUser(id);
      return "success";
   }
}
Copier après la connexion

En ajoutant l'annotation @ApiOperation et d'autres annotations associées, Swagger générera automatiquement la documentation de l'API et fournira une interface d'exploration interactive de l'API .

Vous pouvez consulter la documentation de votre API en visitant http://localhost:8080/swagger-ui.html.

2. Spring REST Docs

Spring REST Docs est un autre outil de génération d'annotations et de documentation d'API Java qui vous permet d'écrire de la documentation d'API en utilisant les formats AsciiDoc, Markdown ou HTML.

À l'aide de Spring REST Docs, vous devez ajouter les dépendances suivantes à votre projet Spring Boot :

<dependency>
   <groupId>org.springframework.restdocs</groupId>
   <artifactId>spring-restdocs-mockmvc</artifactId>
   <version>2.0.2.RELEASE</version>
</dependency>
Copier après la connexion

Ensuite, ajoutez l'annotation @WebMvcTest dans votre classe de test, comme suit. :

@RunWith(SpringRunner.class)
@WebMvcTest(UserController.class)
public class UserControllerTests {
  
   @Autowired
   private MockMvc mockMvc;
  
   @Test
   public void getUserList() throws Exception {
      this.mockMvc.perform(get("/user/list"))
         .andExpect(status().isOk())
         .andDo(document("getUserList", 
             responseFields(
                 fieldWithPath("[].id").description("用户ID"),
                 fieldWithPath("[].name").description("用户名"),
                 fieldWithPath("[].age").description("用户年龄")
             )));
   }
  
   @Test
   public void postUser() throws Exception {
      User user = new User();
      user.setName("Tom");
      user.setAge(20);
      ObjectMapper mapper = new ObjectMapper();
      String userJson = mapper.writeValueAsString(user);
      this.mockMvc.perform(post("/user/")
         .contentType(MediaType.APPLICATION_JSON)
         .content(userJson))
         .andExpect(status().isOk())
         .andDo(document("postUser", 
             requestFields(
                 fieldWithPath("name").description("用户名"),
                 fieldWithPath("age").description("用户年龄")
             )));
   }
  
   @Test
   public void getUser() throws Exception {
      this.mockMvc.perform(get("/user/{id}", 1))
         .andExpect(status().isOk())
         .andDo(document("getUser", 
             pathParameters(
                 parameterWithName("id").description("用户ID")
             ),
             responseFields(
                 fieldWithPath("id").description("用户ID"),
                 fieldWithPath("name").description("用户名"),
                 fieldWithPath("age").description("用户年龄")
             )));
   }
  
   @Test
   public void putUser() throws Exception {
      User user = new User();
      user.setName("Tom");
      user.setAge(20);
      ObjectMapper mapper = new ObjectMapper();
      String userJson = mapper.writeValueAsString(user);
      this.mockMvc.perform(put("/user/{id}", 1)
         .contentType(MediaType.APPLICATION_JSON)
         .content(userJson))
         .andExpect(status().isOk())
         .andDo(document("putUser", 
             pathParameters(
                 parameterWithName("id").description("用户ID")
             ),
             requestFields(
                 fieldWithPath("name").description("用户名"),
                 fieldWithPath("age").description("用户年龄")
             )));
   }
  
   @Test
   public void deleteUser() throws Exception {
      this.mockMvc.perform(delete("/user/{id}", 1))
         .andExpect(status().isOk())
         .andDo(document("deleteUser", 
             pathParameters(
                 parameterWithName("id").description("用户ID")
             )));
   }
}
Copier après la connexion

En ajoutant les annotations et les descriptions de champs correspondantes, Spring REST Docs générera automatiquement la documentation de l'API et l'enregistrera dans le répertoire /target/generated-snippets, que vous pourrez convertir dans le format de document final.

3. Résumé

Cet article présente deux méthodes pour implémenter l'annotation API et la génération de documents basées sur Spring Boot. Swagger fournit une méthode pratique et facile à utiliser, et les documents générés sont relativement intuitifs et faciles à comprendre, ce qui la rend adaptée aux petits projets ou au développement rapide. Spring REST Docs offre une approche plus flexible et personnalisable, qui peut être appliquée à des projets et des scénarios plus complexes nécessitant une documentation API de meilleure qualité.

Quelle que soit la méthode que vous choisissez, une documentation API correcte, standardisée et claire est essentielle. Elle facilite non seulement la collaboration front-end et back-end, mais contribue également à la maintenance à long terme de votre projet. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Spring Boot+MyBatis+Atomikos+MySQL (avec code source) Spring Boot+MyBatis+Atomikos+MySQL (avec code source) Aug 15, 2023 pm 04:12 PM

Dans les projets réels, nous essayons d'éviter les transactions distribuées. Cependant, il est parfois vraiment nécessaire de procéder à un fractionnement des services, ce qui entraînera des problèmes de transactions distribuées. Dans le même temps, des transactions distribuées sont également demandées sur le marché lors des entretiens. Vous pouvez vous entraîner avec ce cas et parler de 123 lors de l'entretien.

Bénéficiez d'un support multilingue et d'applications internationales grâce à Spring Boot Bénéficiez d'un support multilingue et d'applications internationales grâce à Spring Boot Jun 23, 2023 am 09:09 AM

Avec le développement de la mondialisation, de plus en plus de sites Web et d'applications doivent fournir un support multilingue et des fonctions d'internationalisation. Pour les développeurs, la mise en œuvre de ces fonctions n’est pas une tâche facile car elle nécessite de prendre en compte de nombreux aspects, tels que la traduction linguistique, les formats de date, d’heure et de devise, etc. Cependant, grâce au framework SpringBoot, nous pouvons facilement implémenter un support multilingue et des applications internationales. Tout d’abord, comprenons l’interface LocaleResolver fournie par SpringBoot. Lieu

Implémenter le mappage ORM basé sur Spring Boot et MyBatis Plus Implémenter le mappage ORM basé sur Spring Boot et MyBatis Plus Jun 22, 2023 pm 09:27 PM

Dans le processus de développement d'applications Web Java, la technologie de mappage ORM (Object-RelationalMapping) est utilisée pour mapper les données relationnelles de la base de données avec des objets Java, ce qui facilite l'accès et l'exploitation des données par les développeurs. SpringBoot, en tant que l'un des frameworks de développement Web Java les plus populaires à l'heure actuelle, a fourni un moyen d'intégrer MyBatis, et MyBatisPlus est un framework ORM étendu sur la base de MyBatis.

Comment utiliser Spring Boot pour créer des applications de traitement de Big Data Comment utiliser Spring Boot pour créer des applications de traitement de Big Data Jun 23, 2023 am 09:07 AM

Avec l’avènement de l’ère du Big Data, de plus en plus d’entreprises commencent à comprendre et à reconnaître la valeur du Big Data et à l’appliquer à leurs activités. La question qui se pose est de savoir comment gérer ce flux important de données. Dans ce cas, les applications de traitement du Big Data sont devenues quelque chose que chaque entreprise doit prendre en compte. Pour les développeurs, comment utiliser SpringBoot pour créer une application efficace de traitement du Big Data est également une question très importante. SpringBoot est un framework Java très populaire qui permet

Intégration et utilisation de Spring Boot et base de données NoSQL Intégration et utilisation de Spring Boot et base de données NoSQL Jun 22, 2023 pm 10:34 PM

Avec le développement d’Internet, l’analyse des mégadonnées et le traitement de l’information en temps réel sont devenus un besoin important pour les entreprises. Afin de répondre à de tels besoins, les bases de données relationnelles traditionnelles ne répondent plus aux besoins du développement commercial et technologique. Au lieu de cela, l’utilisation de bases de données NoSQL est devenue une option importante. Dans cet article, nous aborderons l'utilisation de SpringBoot intégré aux bases de données NoSQL pour permettre le développement et le déploiement d'applications modernes. Qu'est-ce qu'une base de données NoSQL ? NoSQL n'est pas seulement du SQL

Créer un système ESB à l'aide de Spring Boot et Apache ServiceMix Créer un système ESB à l'aide de Spring Boot et Apache ServiceMix Jun 22, 2023 pm 12:30 PM

Alors que les entreprises modernes s’appuient de plus en plus sur une variété d’applications et de systèmes disparates, l’intégration d’entreprise devient encore plus importante. Enterprise Service Bus (ESB) est un modèle d'architecture d'intégration qui connecte différents systèmes et applications entre eux pour fournir des services communs d'échange de données et de routage de messages afin de réaliser l'intégration des applications au niveau de l'entreprise. En utilisant SpringBoot et ApacheServiceMix, nous pouvons facilement créer un système ESB. Cet article explique comment l'implémenter. SpringBoot et A

Implémentation de la conversion HTML vers HTMLDocx dans Vue : une méthode de génération de documents simple et efficace Implémentation de la conversion HTML vers HTMLDocx dans Vue : une méthode de génération de documents simple et efficace Jul 22, 2023 am 08:49 AM

Implémentation de la conversion HTML vers HTMLDocx dans Vue : une méthode de génération de documents simple et efficace Dans le développement Web moderne, la génération de documents est une exigence courante. HTML est la structure de base des pages Web et DOCX est un format de document bureautique courant. Dans certains cas, nous pouvons avoir besoin de convertir le format HTML au format DOCX pour répondre à des besoins spécifiques. Cet article présentera une méthode simple et efficace pour utiliser Vue pour convertir du HTML en HTMLDocx. Tout d'abord, nous devons installer

Spring Boot implémente la technologie de séparation lecture-écriture MySQL Spring Boot implémente la technologie de séparation lecture-écriture MySQL Aug 15, 2023 pm 04:52 PM

Comment réaliser la séparation lecture-écriture, projet Spring Boot, la base de données est MySQL et la couche de persistance utilise MyBatis.

See all articles