ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ REST API ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Swagger | ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎ DTO
HTML-ΠΊΠΎΠ΄
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ: 12 ΡΠ΅Π½ 2024
- π ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ Π½Π° ΡΡΠ΅ΡΡΠ΅ΠΌ Π·Π°Π½ΡΡΠΈΠΈ ΠΈΠ· ΡΠ΅ΡΠΈΠΈ ΡΡΠΎΠΊΠΎΠ² ΠΏΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ REST API.
Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ ΠΊΠ°ΠΊ:
β«οΈ Π Π΅Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ DTO
β«οΈ ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Swagger
π« ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ - pavel.stanislavovich.ge@gmail.com
π ΠΡΡΠ³ΠΈΠ΅ ΠΊΡΡΡΡ Π½Π° Stepik - stepik.org/use...
π₯ Telegram ΠΊΠ°Π½Π°Π» - t.me/NerzonCha...
β¬οΈΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈβ¬οΈ
OpenAPI - mvnrepository....
ΠΊΠΎΡΠΎΡΠΊΠΎ ΡΡΠ½ΠΎ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π±Π΅Π· Π²ΠΎΠ΄Ρ) Π‘ΠΠΠ‘ΠΠΠ!!!
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅, ΡΡΠ°ΡΠ°ΡΡΡ)
8:51 ΠΠ° ΠΎΠ½ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΊΡΡΠ°ΡΠΈ ΠΏΡΠΎΡΡΠ°Π²Π»ΡΠ»ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠΌ, Π΅ΡΠ»ΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ POST Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ id, Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΡΠ°Π·Ρ ) ΠΠΎ DTO ΡΠ°ΠΊ ΠΈ ΡΠ°ΠΊ ΡΡΡΠΊΠ° ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ ΠΈ Π·Π° Π½Π΅Π΅ ΠΈ Π·Π° ΡΡΠΎ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡ! π€
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ΅ΠΌΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ π
ΠΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΌΠ½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ Π²Π°ΡΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ π. ΠΡΠ»ΠΎ Π±Ρ ΠΊΡΡΡΠΎ Π΅ΡΠ»ΠΈ Π±Ρ Π΅ΡΡ ΠΎΠ±ΡΡΡΠ½ΠΈΠ»ΠΈ Spring Security Ρ ΡΠΎΠ»ΡΠΌΠΈ ΠΈ ΠΏΠ΅ΡΠΌΠΈΡΠΈΠΎΠ½Π°ΠΌΠΈ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅!
ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠ³Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ swagger-ui, ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ .../v3/api-docs Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ, Π° Π²ΠΎΡ ΡΠ°ΠΌ ui Π½Π΅Ρ (404 Π²ΡΠ΄Π°Π΅Ρ, Ρ Π΅Π³ΠΎ Π΄Π°ΠΆΠ΅ Π² application.yaml ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π», ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½ΠΎΠ»Ρ; spring-parent 3.2.5, speingdoc 2.5.0)
ΠΡΡΠ°Π»ΡΡ ΠΈ ΡΠ΅ΡΠ΅Π· Swagger Editor, Π·Π°ΠΏΡΠΎΡΡ Ρ ΠΌΠ΅Π½Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ, Π° Π½Π° SE Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ(((
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅! ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΌΠ½Π΅ Π½Π° ΠΏΠΎΡΡΡ - pavel.stanislavovich.ge@gmail.com
ΠΠΏΠΈΡΠΈΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΡΡΡΠ»ΠΊΡ Π½Π° GitHub.
Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ - springdoc-openapi-starter-webmvc-ui
ΠΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ? Π ΠΊΠ°ΠΊ Π΅Ρ ΡΠ΅ΡΠ°Π»ΠΈ?
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅, Π° ΠΏΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡΠ΅, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ? Maven Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π΅Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ?
@@NerzonIT ΡΠ°ΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° - Cannot resolve org.aspectj:aspectjweaver:1.9.22.1
Π‘ΠΊΠΈΠ½ΡΡΠ΅ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ pom.xmlπ
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΠΏΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡ Β«Π² ΠΊΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² swagger?β
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅, Π»ΠΈΠ±ΠΎ Π² json Π»ΠΈΠ±ΠΎ Π² yaml ΡΠΎΡΠΌΠ°ΡΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎ ΡΡΠΎ
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ! ΠΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅. ΠΠ°ΠΏΠΈΡΠ°Π» ΠΠ°ΠΌ Π½Π° ΠΏΠΎΡΡΡ, Π΅ΡΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°. ΠΠ°ΡΠ°Π½Π΅Π΅, ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²Π°ΠΌ ΠΎΡΠ²Π΅ΡΡ.
@@NerzonIT Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Operation ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠΉ, ΡΡΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΊ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ?
Π‘Π»Π΅ΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΈΡΠ°ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ΅.
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ gradle:
implementation('org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0')
implementation('io.springfox:springfox-swagger2:3.0.0')
π
ΡΡΠΌΠΌΠ°ΡΠΈ => ΡΠ°ΠΌΠΌΠ°ΡΠΈ
π
+
+