/MailSlurp-EmailApi

πŸ’« Использованиe Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MailSlurp для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с элСктронной ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ. Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ ящики c использованиСм API.

Primary LanguageGoMIT LicenseMIT

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ создания мноТСства ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиков Π½Π° MailSlurp с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ API

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ содСрТит ΠΊΠΎΠ΄ для создания сразу Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ API сСрвиса MailSlurp.


ВрСбования

Для запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Π°ΠΌ понадобятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:


  1. УстановитС Go (вСрсия 1.20 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅) - Бсылка Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ.

  2. Π‘ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° Π²Π°ΡˆΡƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ:

    git clone https://github.com/Jhnvlglmlbrt/MailSlurp-CreatingEmail
    
  3. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

    cd MailSlurp-CreatingEmail
    
  4. УстановитС зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

    go get
    
  5. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ API-ΠšΠ»ΡŽΡ‡ - Бсылка

  6. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ "Your API-key" Π½Π° ваш Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ API-ΠΊΠ»ΡŽΡ‡ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ createClient.

    apiKey := "Your API-key"
    
  7. ЗапуститС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

    go run main.go
    

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ структура ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² чистой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ отвСтствСнности ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ, Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ тСстируСмым.

Π’ΠΎΡ‚ ΠΎΠ±Π·ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΡ… Ρ€ΠΎΠ»Π΅ΠΉ:

  • cmd/main.go:

    Π“Π»Π°Π²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚ API, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈ сСрвис, Π° Π·Π°Ρ‚Π΅ΠΌ запускаСт процСсс создания ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ящиков. Π’ этом Ρ„Π°ΠΉΠ»Π΅ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Он являСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° ΠΈ ΡΠ²ΡΠ·ΡƒΡŽΡ‰ΠΈΠΌ Π·Π²Π΅Π½ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

  • controllers/inbox_controller.go:

    Π’ этом Ρ„Π°ΠΉΠ»Π΅ находится ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов, связанных с ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌΠΈ ящиками. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ слуТит ΠΊΠ°ΠΊ посрСдник ΠΌΠ΅ΠΆΠ΄Ρƒ внСшними запросами ΠΈ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ. Он обращаСтся ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ сСрвиса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.

  • services/inbox_service.go:

    Π’ этом Ρ„Π°ΠΉΠ»Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ сСрвис, содСрТащий бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌΠΈ ящиками. БСрвис выполняСт Π±ΠΎΠ»Π΅Π΅ высокоуровнСвыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, связанныС с бизнСс-ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ. Он взаимодСйствуСт с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ внСшним рСсурсам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ API.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя слои, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ слой ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ:

  1. Π‘Π»ΠΎΠΉ прСдставлСния (Presentation Layer): Π—Π΄Π΅ΡΡŒ находится main.go. Π­Ρ‚ΠΎΡ‚ слой отвСтствСнСн Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π²Π½Π΅ΡˆΠ½ΠΈΡ… запросов, взаимодСйствиС с внСшним ΠΌΠΈΡ€ΠΎΠΌ ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

  2. Π‘Π»ΠΎΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ (Business Logic Layer): Π—Π΄Π΅ΡΡŒ находятся controllers/inbox_controller.go ΠΈ services/inbox_service.go. Π­Ρ‚ΠΎΡ‚ слой содСрТит бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ, которая описываСт ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

  3. Π‘Π»ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (Data Layer): Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅Ρ‚ явно Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ слоя Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ инкапсулирован Π²Π½ΡƒΡ‚Ρ€ΠΈ MailSlurp API. Однако, Ссли Π±Ρ‹ Ρƒ вас Π±Ρ‹Π»Π° локальная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ источники Π΄Π°Π½Π½Ρ‹Ρ…, это мСсто для ΠΈΡ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ.