0
0

Go言語向けNCMB SDKの使い方(配列の追加・削除操作)

Posted at

NCMBはモバイル向けのBaaS(mobile Backend as a Service)ですが、サーバー側のデータとNCMB上のデータを連係させたいというニーズは良くあります。

そんなときには各言語向けのSDKがあると便利です。サーバー向けにはRuby、Python、PHP、Java、C#のSDKがあります(すべて公式サポート対象外の、コミュニティSDKという位置づけです)。

新しくGo言語向けのSDK開発をはじめたので、その使い方を紹介します。今回はデータストアの配列フィールドに対する要素追加・削除の処理について解説します。

ソースコード

ソースコードはGitHubにて公開しています。ライセンスはMIT Licenseになります。

NCMBMania/ncmb_go

インストール

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)

注意点

AddAddUniqueRemove を使うと、そのフィールドの内容が単なる配列ではなくなります。これらのメソッドを使った後には、保存・再取得するまではフィールドの値を取得しない方が良いでしょう。

item.Get("array")
// => [1, 2]
item.Add("array", 3)
item.Get("array")
// => {__op: "Add", objects: [1,2,3])

まとめ

まだ基本的な機能しかありませんが、徐々にバージョンアップしていきます。

Go言語を使ってWebアプリケーションを開発している方は、そのデータ保存先としてNCMBを利用してみてください。

mBaaSでサーバー開発不要! | ニフクラ mobile backend

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0