試みを学ぶしようとする-モジュラーを取得しましょう!
13870 ワード
モジュラーゲット
これを覚えていますか.
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
mkdir $GOTPATH/github.com/shindakun/mailgunner
mkdir $GOTPATH/github.com/shindakun/mailgunner/client
mkdir ~/Code/mailgunner
touch main.go
code .
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 init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/shindakun/mailgunner.git
git push -u origin master
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 onhttp.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?
Reference
この問題について(試みを学ぶしようとする-モジュラーを取得しましょう!), 我々は、より多くの情報をここで見つけました https://dev.to/shindakun/attempting-to-learn-go---lets-get-modular-390iテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol