エンジニアはこわくない

好きなように書く

connpassAPIを使いやすくするライブラリをgolangで作った


スポンサーリンク

f:id:tsujitaku50:20170224131252j:plain

こんにちは、つじたく(@Tsuji_Taku50)です。

golangconnpassAPIを使いやすくするためのライブラリを

作成したので紹介します。

※使いやすくというのは、あくまで個人的なので人によっては使いにくいだったりがあると思いますorz。

リポジトリ

リポジトリは下記になります。

READEM.mdに諸々の情報を記載しています。

github.com

インストール方法

%go get github.com/TsujiTakuya55/go-connpass/connpass

サンプルコード

go-connpassライブラリの使い方を載せたサンプルコードも存在します。

go-connpass/main.go at master · TsujiTakuya55/go-connpass · GitHub

そんな難しくないので、使い方自体はソースコードを見て貰えれば分かると思います。

一応ざっくりとですが、

  • イベントIDで検索

  • 任意の単語で検索

  • 検索件数の指定

  • ユーザー名で検索

  • 開催日付で検索

などに対応しています。

自動テスト

Githubにpushするとcircle.ymlで自動テストするように設定しています。

circle.ymlの記述を見てもらうと分かるかと思いますが、

go vet & go test

などをしています。

少し解説

// 「golang」というキーワードで検索&表示件数を5件にしたいとき
func keyword() {
    param := &connpass.Param{
        Keyword: "golang",
        Options:connpass.Options{
            Start:1,
            Order:1,
            Count:5,
        },
    }

    client := connpass.NewClient()
    connpass, _, err := client.Get(param)

    if err != nil {
        fmt.Println(fmt.Errorf("err! \n", err))
        return
    }

    for _, k := range *connpass.Events {
        fmt.Println("eventId :", *k.EventId)
        fmt.Println("title :", *k.Title)
        fmt.Println("address :", *k.Address)
        fmt.Println("startedAt :", *k.StartedAt)
        fmt.Println("==================================")
    }
}

connpass.Paramという構造体に情報を詰めて引数に入れて、

client := connpass.NewClient()で初期化しています。

connpassという変数に情報を詰めて、最後にfor文で回しています。

まとめ

練習のためにgolangでライブラリを作ったみたのですが、

go getコマンドでライブラリを配布できるのはすごい便利ですね!

おわり!!