虚無庵

徒然なるままに

Fukuoka.rb #148 を開催した

fukuokarb.connpass.com

先週は悪天候のため中止にしました。最近は雨模様が続くので開催が危ぶまれる日々を過ごしています。

今回やったこと

msgraph

本家 SDK があるものの全然メンテナンスされていなさそうなので、「自分でメンテナンスできそうなものを作ってみるか」ということで始めた msgraph の開発。

本当は設計とかかっちりやった方がいいんだろうが、そんな仕事っぽいことをやったらモチベーションが続かないと思ったので、とりあえず手当たり次第に動かして実装している感じで進めています。

で、目下悩んでいるのが「Web API Client として Rubyist が気持ちよく使える感じの I/F ってどんな I/F だろう?」というもの。 前々から「俺は Rubyist ではない」と公言している俺だけど、とはいえ好きな Ruby コミュニティーに対してコードで貢献したい気持ちはある。

ならば、Rubyist が気持ちよく使える感じがいいだろう、と思ってはいるものの自分が Rubyist ではない && ruby 全然分からない…なので、実装も四苦八苦している。

うんうん悩んでいた中でとりあえず「Microsoft Graph REST API v1.0 reference の左メニューにある各カテゴリーをそのままモデルとして扱えないか?」ということを思いついた。

たとえばユーザー関連の API はリファレンスでは以下のような構成となっている。

f:id:jinroq:20190905123923p:plain
Users

なので、msgraph.users.user.list という感じでユーザー一覧が取得できればリファレンスを参照して直感的に API Client を利用できそうな気がした。

よって msgraph gem を以下のような構成にしてみた。

  • lib
    • msgraph.rb
    • msgraph
      • users.rb
      • users
        • user.rb

これで実装してみると namespace の重複が発生してにっちもさっちも行かなくなっている状態になった。

とはいえ本家のような OData プロトコルは使いたくないなぁ、といったところ。あの xml を管理できる自信がないんで。

世に出回っている Ruby 製 Web API Client の I/F がどんな感じなのか知見を得たいところ。

その他

RubyConf 2019

スピーカーが決定したようで、残念ながら不採択でした。 今年のプロポーザル戦歴は 7 戦 1 勝 6 敗です。

次回

9/11 の Fukuoka.rb は OSS Gate Fukuoka の Red Data Tools 枠として開催します。

oss-gate-fukuoka.connpass.com

OSS Gate Fukuoka は 9/10 からの 2 日間開催されます。お間違えないようお願いします。 また、サポーター枠が不足していますので、こちらもご協力いただければ幸いです。

次々回

fukuokarb.connpass.com

前回が中止になったのでキリ番にはなりませんでしたが、LT 大会をやります。 LT をしてくれた方には記念品を贈呈するかも。