So verwenden Sie Swagger in SpringBoot
Swagger integrieren
Abhängigkeit:
<!-- Swagger --> <dependency> <groupId>com.battcn</groupId> <artifactId>swagger-spring-boot-starter</artifactId> <version>2.1.5-RELEASE</version> </dependency>
Sie sollten bemerkt haben, dass der Swagger, den ich hier habe, nicht offiziell ist und die Konfiguration ist einfacher.
Detaillierte Konfiguration
Detaillierte Konfiguration:
spring: swagger: enabled: true title: 标题 description: 描述信息 version: 系统版本号 contact: name: 维护者信息 base-package: swagger扫描的基础包,默认:全扫描(分组情况下此处可不配置) #全局参数,比如Token之类的验证信息可以全局话配置 global-operation-parameters: - description: "Token信息,必填项" modelRef: "string" name: "Authorization" parameter-type: "header" required: true groups: basic-group: base-package: com.battcn.controller.basic system-group: base-package: com.battcn.controller.system
Meine Konfiguration
spring: swagger: title: 星空小屋 - 文章微服务接口 description: 文章微服务相关接口,包括文章、模块、知识点管理等 version: 1.0.0 - SNAPSHOT contact: name: cv大魔王 email: 1919301983@qq.com host: localhost enabled: true security: filter-plugin: true # 配置账号密码 username: root password: root
Konfigurieren Sie den Interceptor, und es gibt einen Interceptor Dahinter steckt die Konfiguration. Wenn Leser sie in ihren eigenen Projekten verwenden müssen, ändern Sie bitte die ursprüngliche Interceptor-Konfiguration und ignorieren Sie die folgenden Pfade, um zu vermeiden, dass sie abgefangen werden und nicht mehr zugänglich sind. „swagger-ui.html“, „static/css/“, „static/js/“, „swagger-resources“, „/**/error“, „v2/api-docs ”
Testen Sie mit
, um das Projekt auszuführen und auf IP+Portnummer/swagger-ui.html
zuzugreifen, z. B. Zugriff im Browser : http:// 127.0.0.1:13001/swagger-ui.htmlIP+端口号/swagger-ui.html
,例如在浏览器访问:http://127.0.0.1:13001/swagger-ui.html
登录后的效果:
复习――常用注解
对swagger熟悉的小伙伴的请忽略“常用注解段落”
`@Api`:用在 Controller 类上,描述该类的作用 1. `value`="描述信息" 2. `description`="详细描述该类的作用"
@ApiOperation
:用在 Controller 请求方法上,描述方法的作用。
@ApiModel
:用在请求参数是对象上,描述该对象类的作用
// 在对象类上使用@ApiModel @ApiModel(value="CategoryREQ对象", description="类别查询条件") public class CategoryREQ extends BaseRequest<Category> { }
@ApiModelProperty
:用在请求参数是对象的属性上,描述对象属性的作用。
value
:属性的描述hidden
:是否是查询条件属性, false:(默认值)在api文档显示,作为查询条件;true 隐藏,不是条件属性
// 请求方法参数是 CategoryREQ 对象 public Result search(@RequestBody CategoryREQ req) {} @ApiModel(value="CategoryREQ对象", description="类别查询条件") public class CategoryREQ extends BaseRequest<Category> { @ApiModelProperty(value = "分类名称") private String name; @ApiModelProperty(value="状态(1:正常,0:禁用)") private Integer status; }
@ApiResponses
:用在请求的方法上,用于表示一组响应@ApiResponse
:用在@ApiResponses
中,一般用于表达一个错误的响应信息,注解参数:code
:数字,如 400message
:信息,如 “参数填写错误”response
:抛出异常的类
@ApiIgnore
: 使用该注解忽略这个 API
@ApiImplicitParams
:用在请求方法上,对多个请求参数增加描述
@ApiImplicitParam
:可单独使用,或在 @ApiImplicitParams 中使用,给方法的一个请求参数增加描述。
name
:参数名value
:描述参数的作用dataType
:参数类型,参数类型,默认String,其它值 dataType=“Integer”defaultValue
:参数默认值required
:参数是否必传(true/false)paramTpye
:指定参数放在哪些地方(header/query/path/body/form)
header
:参数在request headers 里边提交 @RequestHeaderquery
:直接跟参数完成自动映射赋值 @RequestParampath
:以路径变量的形式提交数据 @PathVariablebody
:以流的形式提交 仅支持POST(不常用)form

Review – Allgemeine Anmerkungen#🎜🎜# Ja Freunde, die sich mit Swagger auskennen, bitte ignorieren Sie den „allgemeinen Anmerkungsabsatz“ #🎜🎜#
// 请求方法有多个请求参数 size, current
@ApiImplicitParams({
@ApiImplicitParam(name="current", value="页码", required=true, paramType="path",dataType="int"),
@ApiImplicitParam(name="size", value="每页记录数", required=true, paramType="path",dataType="int")
})
@ApiOperation("根据分类名称与状态查询分类列表接口")
@PostMapping("/search/{current}/{size}")
Result search(@RequestBody CategoryREQ req, @PathVariable int current, @PathVariable int size);
Nach dem Login kopieren#🎜🎜#@ApiOperation
: der in der Controller-Anfrage verwendet wird Methode, um die Funktion der Methode zu beschreiben. #🎜🎜##🎜🎜#@ApiModel
: wird verwendet, wenn der Anforderungsparameter ein Objekt ist, und beschreibt die Rolle der Objektklasse #🎜🎜#rrreee#🎜🎜#@ApiModelProperty code>: Wird verwendet, wenn der Anforderungsparameter ein Attribut eines Objekts ist, und beschreibt die Rolle des Objektattributs. #🎜🎜#<ul class=" list-paddingleft-2">
<li><p><code>value
: Beschreibung des Attributs #🎜🎜#
Ja Freunde, die sich mit Swagger auskennen, bitte ignorieren Sie den „allgemeinen Anmerkungsabsatz“ #🎜🎜#
// 请求方法有多个请求参数 size, current @ApiImplicitParams({ @ApiImplicitParam(name="current", value="页码", required=true, paramType="path",dataType="int"), @ApiImplicitParam(name="size", value="每页记录数", required=true, paramType="path",dataType="int") }) @ApiOperation("根据分类名称与状态查询分类列表接口") @PostMapping("/search/{current}/{size}") Result search(@RequestBody CategoryREQ req, @PathVariable int current, @PathVariable int size);
versteckt
@ApiResponses
: Wird in der Anforderungsmethode verwendet, um eine Reihe von Antworten #🎜🎜# darzustellen >-
@ApiResponse
: Wird in@ApiResponses
verwendet und wird im Allgemeinen zum Ausdrücken einer Fehlerantwortnachricht verwendet. Anmerkungsparameter: #🎜🎜#
code
: Zahl, z. B. 400message
: Meldung, z. B. „Parameterfüllfehler“ response
: Klasse, die eine Ausnahme auslöst #🎜🎜# @ApiIgnore
: Verwenden Sie diese Annotation, um diese API zu ignorieren#🎜🎜##🎜🎜#@ApiImplicitParams
: Wird in Anforderungsmethoden verwendet, um Beschreibungen zu mehreren Anforderungsparametern hinzuzufügen. #🎜🎜##🎜🎜#@ApiImplicitParam
: Kann allein oder in @ApiImplicitParams verwendet werden, um eine Beschreibung zu einem Anforderungsparameter der Methode hinzuzufügen . #🎜🎜#name
: Parametername #🎜🎜#value
: Beschreiben Sie die Funktion des Parameters #🎜🎜#dataType
: Parametertyp, Parametertyp, Standardzeichenfolge, andere Werte dataType= "Integer"# 🎜🎜#defaultValue
: Parameter-Standardwert #🎜🎜#erforderlich
: Ob der Parameter erforderlich ist (wahr/falsch) #🎜🎜#paramTpye
: Geben Sie an, wo die Parameter platziert werden sollen (Header/Abfrage/Pfad/Körper/ Formular) #🎜🎜 #
header
: Parameter werden in Anforderungsheadern übermittelt @RequestHeader#🎜🎜#query
: Vollständig automatisch Zuordnung und Zuweisung direkt mit Parametern @RequestParam#🎜🎜#path
: Daten in Form einer Pfadvariablen senden @PathVariable#🎜🎜#body
: Daten in Form von senden Stream unterstützt nur POST (nicht häufig verwendet)# 🎜🎜#form
: Die Übermittlung in Form eines Formulars unterstützt nur POST (nicht häufig verwendet) #🎜🎜#Referenz: #🎜🎜#rrreeeDas obige ist der detaillierte Inhalt vonSo verwenden Sie Swagger in SpringBoot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Einführung in Jasypt Jasypt ist eine Java-Bibliothek, die es einem Entwickler ermöglicht, seinem Projekt mit minimalem Aufwand grundlegende Verschlüsselungsfunktionen hinzuzufügen und kein tiefes Verständnis der Funktionsweise der Verschlüsselung erfordert. standardbasierte Verschlüsselungstechnologie. Passwörter, Text, Zahlen, Binärdateien verschlüsseln ... Geeignet für die Integration in Spring-basierte Anwendungen, offene API, zur Verwendung mit jedem JCE-Anbieter ... Fügen Sie die folgende Abhängigkeit hinzu: com.github.ulisesbocchiojasypt-spring-boot-starter2 Die Vorteile von Jasypt schützen unsere Systemsicherheit. Selbst wenn der Code durchgesickert ist, kann die Datenquelle garantiert werden.

Mit der kontinuierlichen Weiterentwicklung von Webanwendungen ist API zu einem der Standards für die moderne Webanwendungsentwicklung geworden. Da jedoch die Anzahl und Komplexität der APIs zunimmt, wird auch deren Pflege und Dokumentation immer komplexer. Um dieses Problem zu lösen, wurde Swagger ins Leben gerufen. Es handelt sich um ein Tool zum Generieren von API-Dokumentationen, das Entwicklern die Wartung und Dokumentation von APIs erleichtert und gleichzeitig visuelle Dokumentation und verschiedene andere Funktionen bereitstellt. In diesem Artikel besprechen wir, wie man Swagger in PHP verwendet, um eine zu generieren

1. Redis implementiert das Prinzip der verteilten Sperren und warum verteilte Sperren erforderlich sind. Bevor über verteilte Sperren gesprochen wird, muss erläutert werden, warum verteilte Sperren erforderlich sind. Das Gegenteil von verteilten Sperren sind eigenständige Sperren. Wenn wir Multithread-Programme schreiben, vermeiden wir Datenprobleme, die durch den gleichzeitigen Betrieb einer gemeinsam genutzten Variablen verursacht werden. Normalerweise verwenden wir eine Sperre, um die Richtigkeit der gemeinsam genutzten Variablen sicherzustellen Die gemeinsam genutzten Variablen liegen im gleichen Prozess. Wenn es mehrere Prozesse gibt, die gleichzeitig eine gemeinsam genutzte Ressource betreiben müssen, wie können sie sich dann gegenseitig ausschließen? Heutige Geschäftsanwendungen sind in der Regel Microservice-Architekturen, was auch bedeutet, dass eine Anwendung mehrere Prozesse bereitstellen muss. Wenn mehrere Prozesse dieselbe Datensatzzeile in MySQL ändern müssen, ist eine Verteilung erforderlich, um fehlerhafte Daten zu vermeiden wird zu diesem Zeitpunkt eingeführt. Der Stil ist gesperrt. Punkte erreichen wollen

Laravel-Entwicklung: Wie verwende ich LaravelSwagger, um API-Dokumentation zu generieren? Bei der Entwicklung von Webanwendungen ist der Umgang mit der API-Dokumentation oft eine mühsame, aber wesentliche Aufgabe. API-Dokumentation kann mit Swagger automatisch generiert und visualisiert werden. In der Laravel-Entwicklung können wir das LaravelSwagger-Erweiterungspaket verwenden, um auf einfache Weise SwaggerAPI-Dokumentation zu generieren. In diesem Artikel erfahren Sie, wie Sie L verwenden

Springboot liest die Datei, kann aber nach dem Packen in ein JAR-Paket nicht auf die neueste Entwicklung zugreifen. Es gibt eine Situation, in der Springboot die Datei nach dem Packen in ein JAR-Paket nicht lesen kann ist ungültig und kann nur über den Stream gelesen werden. Die Datei befindet sich unter resources publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

SpringBoot und SpringMVC sind beide häufig verwendete Frameworks in der Java-Entwicklung, es gibt jedoch einige offensichtliche Unterschiede zwischen ihnen. In diesem Artikel werden die Funktionen und Verwendungsmöglichkeiten dieser beiden Frameworks untersucht und ihre Unterschiede verglichen. Lassen Sie uns zunächst etwas über SpringBoot lernen. SpringBoot wurde vom Pivotal-Team entwickelt, um die Erstellung und Bereitstellung von Anwendungen auf Basis des Spring-Frameworks zu vereinfachen. Es bietet eine schnelle und einfache Möglichkeit, eigenständige, ausführbare Dateien zu erstellen

1. Passen Sie den RedisTemplate1.1-Standard-Serialisierungsmechanismus an. Die API-basierte Redis-Cache-Implementierung verwendet die RedisTemplate-Vorlage für Daten-Caching-Vorgänge. Öffnen Sie hier die RedisTemplate-Klasse und zeigen Sie die Quellcodeinformationen der Klasse publicclassRedisTemplateextendsRedisAccessorimplementsRedisOperations an. Schlüssel deklarieren, verschiedene Serialisierungsmethoden des Werts, der Anfangswert ist leer @NullableprivateRedisSe

Wenn Springboot + Mybatis-plus keine SQL-Anweisungen zum Hinzufügen mehrerer Tabellen verwendet, werden die Probleme, auf die ich gestoßen bin, durch die Simulation des Denkens in der Testumgebung zerlegt: Erstellen Sie ein BrandDTO-Objekt mit Parametern, um die Übergabe von Parametern an den Hintergrund zu simulieren dass es äußerst schwierig ist, Multi-Table-Operationen in Mybatis-plus durchzuführen. Wenn Sie keine Tools wie Mybatis-plus-join verwenden, können Sie nur die entsprechende Mapper.xml-Datei konfigurieren und die stinkende und lange ResultMap konfigurieren Schreiben Sie die entsprechende SQL-Anweisung. Obwohl diese Methode umständlich erscheint, ist sie äußerst flexibel und ermöglicht es uns
