ΠΡΠΎΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΡΠΈΠΊΠΎΠ² Π½Π° MailSlurp Ρ ΠΏΠΎΠΌΠΎΡΡΡ API
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΡΠΈΠΊΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ API ΡΠ΅ΡΠ²ΠΈΡΠ° MailSlurp.
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ:
- Go 1.20
- ΠΠΊΠΊΠ°ΡΠ½Ρ ΠΈ API-ΠΊΠ»ΡΡ Ρ ΡΠ°ΠΉΡΠ° Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΠ°ΠΉΡ
-
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Go (Π²Π΅ΡΡΠΈΡ 1.20 ΠΈΠ»ΠΈ Π²ΡΡΠ΅) - Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ.
-
Π‘ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° Π²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ:
git clone https://github.com/Jhnvlglmlbrt/MailSlurp-CreatingEmail
-
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
cd MailSlurp-CreatingEmail
-
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
go get
-
Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ API-ΠΠ»ΡΡ - Π‘ΡΡΠ»ΠΊΠ°
-
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ "Your API-key" Π½Π° Π²Π°Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ API-ΠΊΠ»ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ createClient.
apiKey := "Your API-key"
-
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ:
go run main.go
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠΈΡΡΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π° ΡΠ°Π·Π½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΌ, Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΠΌ.
ΠΠΎΡ ΠΎΠ±Π·ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΡ ΡΠΎΠ»Π΅ΠΉ:
-
cmd/main.go:
ΠΠ»Π°Π²Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ API, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΈ ΡΠ΅ΡΠ²ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΡΠΈΠΊΠΎΠ². Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΎΠ΄Π° ΠΈ ΡΠ²ΡΠ·ΡΡΡΠΈΠΌ Π·Π²Π΅Π½ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ.
-
controllers/inbox_controller.go:
Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠΎΡΡΠΎΠ²ΡΠΌΠΈ ΡΡΠΈΠΊΠ°ΠΌΠΈ. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ»ΡΠΆΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΈ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ. ΠΠ½ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅.
-
services/inbox_service.go:
Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ΅ΡΠ²ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ ΠΏΠΎΡΡΠΎΠ²ΡΠΌΠΈ ΡΡΠΈΠΊΠ°ΠΌΠΈ. Π‘Π΅ΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ. ΠΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ API.
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ»ΠΎΠΈ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»ΠΎΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ:
-
Π‘Π»ΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ (Presentation Layer): ΠΠ΄Π΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ main.go. ΠΡΠΎΡ ΡΠ»ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π΅Π½ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²Π½Π΅ΡΠ½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΌΠΈΡΠΎΠΌ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
-
Π‘Π»ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ (Business Logic Layer): ΠΠ΄Π΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ controllers/inbox_controller.go ΠΈ services/inbox_service.go. ΠΡΠΎΡ ΡΠ»ΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ Π΄Π°Π½Π½ΡΠΌΠΈ.
-
Π‘Π»ΠΎΠΉ Π΄Π°Π½Π½ΡΡ (Data Layer): Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π΅Ρ ΡΠ²Π½ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ Π²Π½ΡΡΡΠΈ MailSlurp API. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Ρ Π²Π°Ρ Π±ΡΠ»Π° Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ.