NCMBはモバイル向けのBaaS(mobile Backend as a Service)ですが、サーバー側のデータとNCMB上のデータを連係させたいというニーズは良くあります。
そんなときには各言語向けのSDKがあると便利です。サーバー向けにはRuby、Python、PHP、Java、C#のSDKがあります(すべて公式サポート対象外の、コミュニティSDKという位置づけです)。
新しくGo言語向けのSDK開発をはじめたので、その使い方を紹介します。今回はデータストアの配列フィールドに対する要素追加・削除の処理について解説します。
ソースコード
ソースコードはGitHubにて公開しています。ライセンスはMIT Licenseになります。
インストール
SDKのインストールは下記コマンドで行います。
go get -u github.com/NCMBMania/ncmb_go
インポート
続けてSDKをインポートします。
import (
"github.com/NCMBMania/ncmb_go"
)
初期化
NCMBより取得したアプリケーションキー、クライアントキーを使って初期化します。
ncmb := NCMB.Initialize("YOUR_APPLICATION_KEY", "YOUR_CLIENT_KEY")
データの新規作成
Item
メソッドで新規データのインスタンスを作ります。引数はクラス名です。
item := ncmb.Item("Hello")
データの適用
アイテムに対して、データをセットします。配列要素は、interfaceの配列として設定してください。 []int
などで行うと、追加時などにエラーが発生します。
item.Set("msg1", "Hello").Set("msg2", "World")
item.Set("array", []interface{}{1, 3})
キーチェーンにも対応していますが、Go言語は改行が使えないので、多用すると見づらくなりそうです。
データの保存
保存は Save
メソッドで行います。保存がうまくいっていれば、 bol = true
になります。
bol, err := item.Save()
配列への要素追加
配列の要素追加は Add
メソッドで行います。指定できるのは一度に一つの要素のみです。配列では設定できないので注意してください。
item.Add("array", 2)
item.Add("array", 3)
item.Add("array", "string")
配列への要素をユニークで追加
配列をユニークで追加する際には AddUnique
を使います。これは重複する要素は追加されません。
item.AddUnique("array", "2")
item.AddUnique("array", "2") // 追加対象外
item.AddUnique("array", 3)
item.AddUnique("array", 3) // 追加対象外
配列の要素削除
配列に含まれる要素を削除する際には Remove
を使います。これは存在する場合は削除されますが、ない場合には何も処理されません。
item.Remove("array", "3") // なければ何も起きません
item.Remove("array", 2)
注意点
Add
や AddUnique
、 Remove
を使うと、そのフィールドの内容が単なる配列ではなくなります。これらのメソッドを使った後には、保存・再取得するまではフィールドの値を取得しない方が良いでしょう。
item.Get("array")
// => [1, 2]
item.Add("array", 3)
item.Get("array")
// => {__op: "Add", objects: [1,2,3])
まとめ
まだ基本的な機能しかありませんが、徐々にバージョンアップしていきます。
Go言語を使ってWebアプリケーションを開発している方は、そのデータ保存先としてNCMBを利用してみてください。