l0w.dev

msgraph.go


msgraph.go というものを作っています。 Microsoft Graph の Go 言語用のクライアントライブラリです。 OneDrive や SharePoint Online といった Microsoft のクラウドサービスのリソース、 Azure Active Directory の登録情報などを Go 言語で操作することができます。

同種のライブラリはすでにいくつか存在するのですが、 msgraph.go の特徴は OData 準拠の REST API 仕様 (XML) からライブラリコードを自動生成することにより、漏れのない完全な API 機能が提供できることです。

ただし実装状況はまだ完全にはほど遠く、 一部のナビゲーションプロパティや Action Function の対応ができておらず、 サーバが返す多相的なオブジェクトの扱い (を Go 言語でどうやるか) も決まっていません。 それでも、現時点で利用可能な膨大な数のエンティティやプロパティに対応する Go の構造体定義は十分に役に立ちます。

個人的にコツコツ作っていたものが一区切りついたので GitHub で公開したのですが、公開にあたりいちばん悩んだのは名前でした。 go-msgraph とか msgraph-go とか msgoraph といった定番ぽい名前はすでに誰かが使っていて、 うまく差別化できるキャッチーな名前も思いつきません。

結局 https://github.com/golang/go/wiki/Projects など他のプロジェクトの名前を眺めて msgraph.go でもまあいいかと自分を納得させるのに 1 週間ほどかかりました。

名前も決まったので、今後は足りない機能の実装など Todo の解消に取り組み、 またドキュメントや Azure AD 認証を含むコードのサンプルを充実させていきたいと思います。