試みを学ぶしようとする-モジュラーを取得しましょう!


モジュラーゲット


これを覚えていますか.
mkdir $GOTPATH/github.com/shindakun/mailgunner
mkdir $GOTPATH/github.com/shindakun/mailgunner/client
あなたはメールを介してメールを送信していない場合があります.それは本当にしつこいです、そして、私は本当に適当にそれを適当にパッケージをローカルで使用するのを簡単にするためにそのようにしました.私はそれがあまり好きでありませんでした、そして、それのためにそれはまだGitthubに掲示されませんでした.だから、私たちは迅速なポストカバーを行うと思うmailgunner 適切なGOモジュール.

準備作業


まず最初にするのは、$GOPATH . モジュールを内部で使用することができますGO111MODULE=on 環境変数ですが、これはすべて廃止しているので$GOPATH 我々はそれの外で働きます.
mkdir ~/Code/mailgunner
さて、Amain.go とVSコードでそれを開きます.
touch main.go
code .
私がちょうどそれをペーストするように、コードはすでに書かれます.私はパッケージ名を更新しましたclient to mailgunner . また、エクスポートされた関数に簡単なコメントを追加しました.これにより、IntelliSenseをVSコードで使用することができます.私は多分彼らをもう少し役に立つでしょう.

私は再びコードを通過するつもりはありません、ちょうどあなたがRPOまたは前の記事にジャンプする必要がないように、ここでそれを提供してください注:私は、事実の後、コードにわずかな微調整を行い、NewMgClient 関数をより正確にNew() .
package mailgunner

import (
  "net/http"
  "net/url"
  "strings"
)

// MgClient struct holds our URL and API key
type MgClient struct {
  MgAPIURL string
  MgAPIKey string
  Client   *http.Client
}

// New returns our MgClient with the proper settings
func New(apiurl, apikey string) MgClient {
  return MgClient{
    apiurl,
    apikey,
    http.DefaultClient,
  }
}

// FormatEmailRequest puts everything together for sending
func (mgc *MgClient) FormatEmailRequest(from, to, subject, body string) (r *http.Request, err error) {
  data := url.Values{}
  data.Add("from", from)
  data.Add("to", to)
  data.Add("subject", subject)
  data.Add("text", body)

  r, err = http.NewRequest(http.MethodPost, mgc.MgAPIURL+"/messages", strings.NewReader(data.Encode()))
  if err != nil {
    return nil, err
  }
  r.SetBasicAuth("api", mgc.MgAPIKey)
  r.Header.Add("Content-Type", "application/x-www-form-urlencoded")
  return r, nil
}
適切なモジュールを作るためには、初期化を行う必要があります.
$ go mod init github.com/shindakun/mailgunner
go: creating new go.mod: module github.com/shindakun/mailgunner
さて、Gitレポをセットしましょう.あなたがGitに慣れていないならば、私はそれをチェックするために若干の時間をとることを勧めます.Pro Git オンラインで利用可能です.
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/shindakun/mailgunner.git
git push -u origin master
今私たちはバージョン番号を使用してリリースをタグ付けする必要がありますGOモジュールをフルに活用する.続きますSemantic Versioning そして、我々のリリースをバージョン1または1としてタグ付けしてくださいv1.0.0 そして、ギタブにタグを押してください.
git tag v1.0.0
git push --tags

新田勲 / マイナー


囲碁のメールガンクライアントの超単純な送信のみの実装。


マイナー


Aの超簡単な送信オンリー実装Mailgun クライアントを移動します.

インストール


モジュールとしてのインポートgithub.com/shindakun/mailgunner/v2 , その後、実行
go mod init module
go build

If you are new to modules checkout my post on .

go get github.com/shindakun/mailgunner

用途

See example/main.go for a usage example.

変更ログ

  • Updated New() to take http.Client so we don't have to rely on http.DefaultClient

モジュールの使用

Alright, great - but, how do we use it? The Git repo includes an example bit of code. Go ahead and clone the repo into a directory outside your $GOPATH. Navigate to the example directory. Then we'll initialize it to make use of the module. Finally, run go build, it will look something like the following.

$ go mod init example
go: creating new go.mod: module example
$ go build
go: finding github.com/shindakun/mailgunner v1.0.0
go: downloading github.com/shindakun/mailgunner v1.0.0
それを見てgo get !

次回


私はgoでウェブサーバを見るために若干の時間をとりたいので、我々は多分単純なサーバーを作ることを見ます.彼らは生産準備ができていないかもしれないが、それはまだアクションでそれらを見るためにインターネット上でそれらをスローするのは楽しいはずです.私は愚かなプロジェクトのいくつかの他のアイデアを試してみて、私が最初に取得することがあります動作するように、我々は何が起こるか見ることができます.
その時まで.
これのためにコードを見つけることができます、そして、他のほとんどはGithubの上でRepoでGoポストを学ぶことを試みます.

新田勲 / アトランティス


ソースレポのための“試みを試みて”私はDED . TOに上に準備してきた投稿


試みを試み


ここで、私は私が私が書いていて、転がっているGo柱を学ぶことを試みているために、書いていたコードを見つけることができます.

ポストインデックス


ポスト
コード
-
-
-
-
-
src
src
src
src
src
src
src
src
src
src
src
src
src
src
src
上記参照
View on GitHub
このポストをお楽しみください.
How about buying me a coffee?