こんにちは。對馬です。
3月28日に株式会社さくらインターネットさんのオフィスにお邪魔して、APIStudy#6 を開催しました。
その様子をご報告します。
前回 #5 の報告はこちらからご覧ください。
第1部:LTタイム
さくらインターネット 芦野さん
まずは会場等ご協力をいただいたさくらインターネットさんから、「さくらのサービスを支えるAPI開発のお話」という題で芦野さんにお話いただきました。
芦野さんは驚きの2016年入社…!
なお、発表時は新入社員でしたが、本報告執筆中に2年目になりました。おめでとうございます。
LTでは、さくらのAPI開発について開発体制やリリースまでの流れを赤裸々にご紹介していただきました。
気になった話は、操作履歴をCSV形式でダウンロードするというAPIを使った機能を作ったときの話です。
はじめは文字化けもなく対応できたのでShift-JISの予定だったが、ログに絵文字が含まれている場合、絵文字以降のログが出力されないということがテストで判明しました。
操作履歴になぜ絵文字!?と思いましたが、その理由はテスターの方の興味本位だったそうです…。
この件は結果的に、BOM付きUTF-8だと文字化けを防ぐことができました。
さまざまな環境でテストしなければいけず大変だったと話されました。
まとめとして、さくらインターネットさんでは割と自由な開発環境で開発しているので、便利なツールを使ってコードを書くことに専念できる!
またテストが1番大変で、いろんなブラウザ・OSの組み合わせでテストしなければならず、ここが課題だそうです。
フライデーナイト 木原さん
急遽登壇していただきました!
フライデーナイトの木原さんより、1月16日にリリースされたAPIを使った印刷プラットフォーム コーデンベルクのご紹介です。
フライデーナイトさんはもともとデジタルマーケティングの会社で、「紙媒体は強い」ということから「紙媒体もデジタルのように扱えたらいいよね!」という案が生まれコーデンベルクができました。
■できること
- 印刷の自動化。APIをたたくだけ。Web情報が更新されたら会社チラシを擦ろう。
- パーソナライゼーション。10万枚刷ったら10万枚同じものを使う必要があった。小ロットで。個別のものを作る。
- 配送の個別化。配送もそれぞれの場所にお届け。
- 生産状況の可視化。工場の情報をAPI経由で見ることができるので、ぎりぎりで情報を変更可能。
APIを使うと多様なことが実現できることを再認識できました。
第2部:ディスカッションタイム
今回のテーマは以下の4つ!
- Python 話したい
- 新規サービス展開時のインフラ設定
- 過去にできちゃったダメ使用の対処法
- ドキュメンテーションツール(内部向け)
ではグループに分かれて発散です!
共有タイム
ディスカッションを終え、最後にチームで話し合った内容を全体に共有します。
Python 話したい
PythonのWebアプリケーションフレームワーク DjangoとFlaskの使い分けについて。
■Django
- 歴史があるので安定性が高い。
- お作法が多く決め事も多い。
→正式にサービス開始したいなら!
■Flask
- 動きが速い。
- 凝ったバリデーションが苦手。
→お手軽に始めたいなら!
Pythonについて。
ライブラリが豊富。
アメリカだとユーザーが多く、最新のライブラリを使うので情報を集めることができる。
可読性が高い。
タブが必須なのできれいに揃います!
新規サービス展開時のインフラ設定
まずは経験値があるサイボウズさんに話を聞き、一般的な新しいサービスを作ろうってときのベストを考えてみました。
結論、クラウド上に作ってオートスケールがいいかも!
閾値とか適切でないと無駄遣いになるので、要注意です。
仮説を立てておいて、実際にスケールしたときにチェックが必要。
Googleが1番安いのでとりあえず試す場合はおすすめですが、試しすぎてAWSに移行できないなどに気を付けて!
過去にできちゃったダメ仕様の対処法
- リファクタリングをして対策
- データ移行
- 手遅れ
WebAPIの担保しなければいけない。外向けだと厳しい。
パラメータのスペル間違い、規則がバラバラ。
最初のほうに決めるパスやちょっとした仕様が手遅れになりがち。
レビューしていても潜り抜けるミス。
→がんばろ。
ドキュメンテーションツール(内部向け)
ツールという文字を見落としていました!なので、ドキュメントについて話しました。
Jsonの階層の表現がしっくりこない。
わかりにくいんで、サンプルといくつかのパターンの例で把握するしかないのでは。
全体の構成はサンプルで、中身はドキュメントという分業はどうか。
内部向けであれば自由に使わせて察してもらう!
どのレベルからAPIを語るのか問題。
内部だとすでに共通認識があるので、個別のエンドポイントから記述するなど、説明を省く部分ができる。
おわりに
今回も無事に終えることができてよかったです!
たくさんの方が参加されるので、これまで気になっていたけど試せなかったことなど、情報共有ができるよい場所になれていると思います。
みんなで高めあって、素敵なAPI設計につながるといいなと思います!
今回のグラレコ
こんな風に仕上げていただきました!
文字だと複雑な構成でも、絵にすると頭にスッと入ってきますね!
情報量も多いので、とても確認しやすいです。
ありがとうございます!
そして!
次回が公開されています!
4月21日ヴァリューズさんにて開催します。
https://apistudy.connpass.com/event/53048/
ご興味がある方、よろしくお願いします!
一緒に熱くAPIのベストプラクティスを語らいましょう!