Heim Java javaLernprogramm So implementieren Sie API-Annotationen und Dokumentgenerierung basierend auf Spring Boot

So implementieren Sie API-Annotationen und Dokumentgenerierung basierend auf Spring Boot

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

Spring Boot ist derzeit eines der beliebtesten Java-Frameworks und bietet die Vorteile einer schnellen Entwicklung, einer hohen Integration und eines einfachen Testens. Während des Entwicklungsprozesses müssen wir häufig API-Dokumente schreiben, um die Front-End- und Back-End-Zusammenarbeit und die zukünftige Projektwartung zu erleichtern.

Das manuelle Schreiben der API-Dokumentation ist jedoch sehr zeitaufwändig und fehleranfällig. In diesem Artikel wird daher erläutert, wie Sie die eigenen Annotationen von Spring Boot und einige Tools verwenden, um API-Kommentare und Dokumentation automatisch zu generieren.

1. Swagger

Swagger ist derzeit eines der beliebtesten Java-API-Annotations- und Dokumentgenerierungstools. Es kann durch Scannen von Anmerkungen in Spring-Projekten automatisch eine API-Dokumentation generieren und außerdem eine interaktive Schnittstelle zur API-Erkundung bereitstellen.

Um Swagger zu verwenden, müssen Sie die folgenden Abhängigkeiten zu Ihrem Spring Boot-Projekt hinzufügen:

<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>
Nach dem Login kopieren

Dann fügen Sie die Annotation @EnableSwagger2 in der Spring Boot-Startup-Klasse hinzu, wie unten gezeigt:

@SpringBootApplication
@EnableSwagger2
public class DemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
}
Nach dem Login kopieren

Dann können Sie sie hinzufügen Ihr Controller Fügen Sie von Swagger bereitgestellte Anmerkungen zur Methode hinzu, um API-Dokumentation zu generieren.

Das Folgende ist beispielsweise ein einfacher 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";
   }
}
Nach dem Login kopieren

Durch Hinzufügen der Annotation @ApiOperation und anderer verwandter Annotationen generiert Swagger automatisch eine API-Dokumentation und stellt eine interaktive API-Erkundungsschnittstelle bereit.

Sie können Ihre API-Dokumentation anzeigen, indem Sie http://localhost:8080/swagger-ui.html besuchen.

2. Spring REST Docs

Spring REST Docs ist ein weiteres Java-API-Annotations- und Dokumentationsgenerierungstool, mit dem Sie API-Dokumentation im AsciiDoc-, Markdown- oder HTML-Format schreiben können.

Mit Spring REST Docs müssen Sie die folgenden Abhängigkeiten zu Ihrem Spring Boot-Projekt hinzufügen:

<dependency>
   <groupId>org.springframework.restdocs</groupId>
   <artifactId>spring-restdocs-mockmvc</artifactId>
   <version>2.0.2.RELEASE</version>
</dependency>
Nach dem Login kopieren

Als nächstes fügen Sie die Annotation @WebMvcTest wie folgt in Ihre Testklasse ein:

@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")
             )));
   }
}
Nach dem Login kopieren

indem Sie die entsprechenden Annotationen und Felder Beschreibung, Spring hinzufügen REST Docs generiert automatisch eine API-Dokumentation und speichert sie im Verzeichnis /target/generated-snippets, und Sie können sie in das endgültige Dokumentationsformat konvertieren.

3. Zusammenfassung

In diesem Artikel werden zwei Methoden zur Implementierung von API-Annotationen und Dokumentgenerierung basierend auf Spring Boot vorgestellt. Swagger bietet eine bequeme und benutzerfreundliche Methode. Die generierten Dokumente sind relativ intuitiv und leicht zu verstehen, sodass sie für kleine Projekte oder schnelle Entwicklungen geeignet sind. Spring REST Docs bietet einen flexibleren und anpassbareren Ansatz, der auf komplexere Projekte und Szenarien angewendet werden kann, die eine qualitativ hochwertigere API-Dokumentation erfordern.

Egal für welche Methode Sie sich entscheiden, es ist wichtig, dass die API-Dokumentation korrekt, standardisiert und klar ist. Sie erleichtert nicht nur die Front-End- und Backend-Zusammenarbeit, sondern hilft auch bei der langfristigen Wartung Ihres Projekts.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie API-Annotationen und Dokumentgenerierung basierend auf Spring Boot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Spring Boot+MyBatis+Atomikos+MySQL (mit Quellcode) Spring Boot+MyBatis+Atomikos+MySQL (mit Quellcode) Aug 15, 2023 pm 04:12 PM

In tatsächlichen Projekten versuchen wir, verteilte Transaktionen zu vermeiden. Manchmal ist es jedoch wirklich notwendig, einige Dienste aufzuteilen, was zu Problemen bei verteilten Transaktionen führt. Gleichzeitig werden in Vorstellungsgesprächen auch verteilte Transaktionen auf dem Markt gefragt. Sie können diesen Fall üben und im Vorstellungsgespräch über 123 sprechen.

Erreichen Sie mehrsprachige Unterstützung und internationale Anwendungen durch Spring Boot Erreichen Sie mehrsprachige Unterstützung und internationale Anwendungen durch Spring Boot Jun 23, 2023 am 09:09 AM

Mit der Entwicklung der Globalisierung müssen immer mehr Websites und Anwendungen mehrsprachige Unterstützung und Internationalisierungsfunktionen bieten. Für Entwickler ist die Implementierung dieser Funktionen keine leichte Aufgabe, da sie die Berücksichtigung vieler Aspekte erfordert, wie z. B. Sprachübersetzung, Datums-, Zeit- und Währungsformate usw. Mithilfe des SpringBoot-Frameworks können wir jedoch problemlos mehrsprachige Unterstützung und internationale Anwendungen implementieren. Lassen Sie uns zunächst die von SpringBoot bereitgestellte LocaleResolver-Schnittstelle verstehen. Ort

Implementieren Sie ORM-Mapping basierend auf Spring Boot und MyBatis Plus Implementieren Sie ORM-Mapping basierend auf Spring Boot und MyBatis Plus Jun 22, 2023 pm 09:27 PM

Im Entwicklungsprozess von Java-Webanwendungen wird die ORM-Mapping-Technologie (Object-RelationalMapping) verwendet, um relationale Daten in der Datenbank Java-Objekten zuzuordnen, sodass Entwickler bequem auf Daten zugreifen und diese bearbeiten können. Als eines der derzeit beliebtesten Java-Webentwicklungs-Frameworks bietet SpringBoot eine Möglichkeit zur Integration von MyBatis, und MyBatisPlus ist ein auf MyBatis basierendes ORM-Framework.

So verwenden Sie Spring Boot zum Erstellen von Big-Data-Verarbeitungsanwendungen So verwenden Sie Spring Boot zum Erstellen von Big-Data-Verarbeitungsanwendungen Jun 23, 2023 am 09:07 AM

Mit dem Aufkommen des Big-Data-Zeitalters beginnen immer mehr Unternehmen, den Wert von Big Data zu verstehen, zu erkennen und ihn auf das Geschäft anzuwenden. Das damit verbundene Problem besteht darin, mit diesem großen Datenfluss umzugehen. In diesem Fall sind Big-Data-Verarbeitungsanwendungen zu etwas geworden, das jedes Unternehmen in Betracht ziehen muss. Für Entwickler ist auch die Verwendung von SpringBoot zum Erstellen einer effizienten Big-Data-Verarbeitungsanwendung ein sehr wichtiges Thema. SpringBoot ist ein sehr beliebtes Java-Framework, das dies ermöglicht

Integration und Nutzung von Spring Boot und NoSQL-Datenbank Integration und Nutzung von Spring Boot und NoSQL-Datenbank Jun 22, 2023 pm 10:34 PM

Mit der Entwicklung des Internets sind Big-Data-Analyse und Echtzeit-Informationsverarbeitung zu einem wichtigen Bedarf für Unternehmen geworden. Um diesen Anforderungen gerecht zu werden, erfüllen herkömmliche relationale Datenbanken nicht mehr die Anforderungen der Geschäfts- und Technologieentwicklung. Stattdessen ist die Verwendung von NoSQL-Datenbanken zu einer wichtigen Option geworden. In diesem Artikel besprechen wir die Verwendung von SpringBoot, das in NoSQL-Datenbanken integriert ist, um die Entwicklung und Bereitstellung moderner Anwendungen zu ermöglichen. Was ist eine NoSQL-Datenbank? NoSQL ist nicht nur SQL

Erstellen Sie ein ESB-System mit Spring Boot und Apache ServiceMix Erstellen Sie ein ESB-System mit Spring Boot und Apache ServiceMix Jun 22, 2023 pm 12:30 PM

Da moderne Unternehmen immer mehr auf eine Vielzahl unterschiedlicher Anwendungen und Systeme angewiesen sind, wird die Unternehmensintegration noch wichtiger. Enterprise Service Bus (ESB) ist ein Integrationsarchitekturmodell, das verschiedene Systeme und Anwendungen miteinander verbindet, um gemeinsame Datenaustausch- und Nachrichtenroutingdienste bereitzustellen und eine Anwendungsintegration auf Unternehmensebene zu erreichen. Mit SpringBoot und ApacheServiceMix können wir ganz einfach ein ESB-System erstellen. In diesem Artikel wird die Implementierung vorgestellt. SpringBoot und A

Implementierung der HTML-zu-HTMLDocx-Konvertierung in Vue: eine einfache und effiziente Methode zur Dokumentgenerierung Implementierung der HTML-zu-HTMLDocx-Konvertierung in Vue: eine einfache und effiziente Methode zur Dokumentgenerierung Jul 22, 2023 am 08:49 AM

Implementierung der HTML-zu-HTMLDocx-Konvertierung in Vue: eine einfache und effiziente Methode zur Dokumentgenerierung In der modernen Webentwicklung ist die Generierung von Dokumenten eine häufige Anforderung. HTML ist die Grundstruktur von Webseiten und DOCX ist ein gängiges Office-Dokumentformat. In einigen Fällen müssen wir möglicherweise HTML in das DOCX-Format konvertieren, um bestimmte Anforderungen zu erfüllen. In diesem Artikel wird eine einfache und effiziente Methode zur Verwendung von Vue zum Konvertieren von HTML in HTMLDocx vorgestellt. Zuerst müssen wir installieren

Spring Boot implementiert die MySQL-Technologie zur Lese-/Schreibtrennung Spring Boot implementiert die MySQL-Technologie zur Lese-/Schreibtrennung Aug 15, 2023 pm 04:52 PM

So erreichen Sie die Lese-Schreib-Trennung, Spring Boot-Projekt, die Datenbank ist MySQL und die Persistenzschicht verwendet MyBatis.

See all articles