---
title: 初めてWeb APIを作った事がきっかけで幸せなエンジニアライフに
tags:  #api #webapi  
author: [小島 優介](https://www.docswell.com/user/kojimadev)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/L2EVNN667Q.jpg?width=480
description: Web API LT会 - vol.3 の発表資料です。 https://rakus.connpass.com/event/236910/ 最後のページで紹介しているLT大会の詳細は以下を参照ください。 https://serverlesslt.connpass.com/event/239999/
published: March 06, 22
canonical: https://www.docswell.com/s/kojimadev/5E86DK-2022-03-07-013831
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/L2EVNN667Q.jpg)

初めて Web API を作った事が
きっかけで幸せなエンジニアライフに
2022/3/8
Web API LT会 - vol.3
小島 優介
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
/65


# Page. 2

![Page Image](https://bcdn.docswell.com/page/Z57GKKN2JL.jpg)

はじめに
技術的な話は前半のみです
後半は私の人生の話です
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
2 /65


# Page. 3

![Page Image](https://bcdn.docswell.com/page/V4EQNNQ9EP.jpg)

自己紹介（2年半前）
名前：小島 優介
年齢：30代後半
活動：
Web API を作った経験なし
社外での発表経験なし
社外での勉強会の参加経験なし
技術記事の投稿経験なし
クラウドの
個人開発のスマホアプリを作った事はある
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
3 /65


# Page. 4

![Page Image](https://bcdn.docswell.com/page/DKJ4GGYRE1.jpg)

はじめてのWeb APIの作成
個人開発のスマホアプリに対して
ユーザーからの要望や、不具合報告など
ユーザーからのフィードバックを元に改善したい
ユーザーからのフィードバックを送信してもらうための
Web API を作ってみる
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
4 /65


# Page. 5

![Page Image](https://bcdn.docswell.com/page/PLE1DD6V7G.jpg)

DB(Firebaseなど)にデータを登録するのは面倒
ユーザーからの要望や不具合報告登録をDBに登録する場合
登録したデータを検索したり、表示したりするために
管理機能の開発が必要(面倒)
また、DBに登録されたことを通知する機能も欲しい(面倒)
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
5 /65


# Page. 6

![Page Image](https://bcdn.docswell.com/page/8GEWYYW3J2.jpg)

そこで Slack の Incoming Webhook
Slack の Incoming Webhook を使えば
指定したチャンネルに要望や不具合報告を投稿可能
Slackなので、検索もしやすいし、通知にもなる
フリープランでも、直近10,000件まで投稿が記録できるので
アプリのユーザー数が多くなるまでは、簡易的な管理として十分
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
6 /65


# Page. 7

![Page Image](https://bcdn.docswell.com/page/W47ZXX5GJ3.jpg)

実現方法
1. フィードバック管理用のSlackのワークスペースを作成する
2. Incoming Webhook を用いてURLを取得する
(こちらのリンク先参照)
3. 上記URLを用いてSlackに投稿する機能を持つ
Web API を Azure Functions で作成する
4. 上記の Web API をスマホアプリから実行する
3. についての詳細を以降で解説
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
7 /65


# Page. 8

![Page Image](https://bcdn.docswell.com/page/KYJ6449QEV.jpg)

C#でSlackに投稿するメソッドを作る
メンションの有無を設定
メッセージと投稿者名と
チャンネル名を設定
SlackのAPIに送信できる形式に変換
Slackに投稿
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
8 /65


# Page. 9

![Page Image](https://bcdn.docswell.com/page/5GJ5QQN2E4.jpg)

C#でAzure Functionsを作る - 雛形の作成
Azureのアカウントを作成して、Visual Studioから
メニューを実行するだけで Web APIを作成可能
詳細はこちらのリンク先参照
新規作成するだけで雛形となるメソッドが作成される
実装はこれを少し変更するだけで良い
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
9 /65


# Page. 10

![Page Image](https://bcdn.docswell.com/page/V9E2PP51ER.jpg)

C#でAzure Functionsを作る - Slackに投稿
実装変更は赤枠の2箇所を変更するだけ
リクエストボディから
パラメータ取得
Slackに投稿するメソッドを
呼び出す
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
10 /65


# Page. 11

![Page Image](https://bcdn.docswell.com/page/5D7Y55K47M.jpg)

Web APIの実行結果
Web API のリクエストボディに json形式で
メッセージ、チャンネル名、メンション有無を指定して実行
Slackの #error_report チャンネルに下図のように投稿される
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
11 /65


# Page. 12

![Page Image](https://bcdn.docswell.com/page/2VENNNR6E8.jpg)

ユーザーからフィードバック管理の例
不具合報告、要望などの
用途ごとにチャンネルを分ける
不具合報告の例
問題を特定するための
情報を送信
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
12 /65


# Page. 13

![Page Image](https://bcdn.docswell.com/page/GY79RRMRJ3.jpg)

ここまでのまとめ
Slack の Incoming Webhook と
Azure Functions を用いることで
ユーザーからのフィードバックを管理する機能を簡単に実現できた
本発表で紹介したソースコードは以下のリポジトリで公開
https://github.com/kojimadev/SlackIncomingWebhook
ちなみに、ユーザーからのフィードバックを取り入れる機能を
アプリに追加した結果、
Google Play での評価が 3.9 → 4.7 にアップ
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
13 /65


# Page. 14

![Page Image](https://bcdn.docswell.com/page/5G78WWLGJD.jpg)

この時に初めて
Web API を
作ったことが
私の人生を変える
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
14 /65


# Page. 15

![Page Image](https://bcdn.docswell.com/page/ML7LNNLXER.jpg)

初めての Web API を作る過程で起きたこと
世の中のいろんなエンジニアの人たちが
様々な役に立つ情報を記事に書いてくれるおかげで
Web API を作成できた
自分も技術記事を書いてみよう
今まで自分は技術記事を読んで、分かった気になっていた
記事を書きながら理解し直すことで「使える知識」になった
記事にいいねが付くと嬉しかった
また記事を書いて、技術を理解して成長、いいねで嬉しい
無限ループ
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
15 /65


# Page. 16

![Page Image](https://bcdn.docswell.com/page/54EMXXM3JW.jpg)

技術記事を書くと、人の記事を楽しく読めるように
技術記事を書くと、情報をインプットするモチベーションが上がる
なんとなく情報を収集していたが、記事を書くために
「人に説明するために自分なりの解釈」をしようと
試みながら情報をインプット
それまでは、記事を書いている人の事を想像した事はなかったが
自分が書く側の経験を積むと、たくさん読まれる記事を書く人に興味
(どれだけの事を調べて書いたのか、他にどんな記事を書いているか)
あと、自分の記事にコメントしてくれた人が書いている記事にも興味
技術記事を投稿する事で「多くの情報を楽しく理解」
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
16 /65


# Page. 17

![Page Image](https://bcdn.docswell.com/page/ZPERNNVRJ9.jpg)

コミュニティで価値観が変わる
「多くの情報を楽しく理解」することで
面白そうなIT系コミュニティを見つけて参加
エンジニアライフは圧倒的に楽しくなり、成長も加速
半年間で価値観がガラっと変わる
仕事の時間以外で社外の勉強会に参加するのは嫌
→ 興味あるテーマでの勉強会は楽しい
OSSやサービスを作って公開するのは限られた天才のみ
→ 作って公開するのは簡単で楽しい
情報は自分で調べるしかない
→ 困っていれば助けてくれるし、色んな知見をシェアしてくれる
凄いエンジニアの人達とは関われない
→ 気軽に会話できるし、ポジティブフィードバックしてくれる
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
17 /65


# Page. 18

![Page Image](https://bcdn.docswell.com/page/NP7XNNZYEX.jpg)

自分を育成してくれたコミュニティ
運営者ギルド
https://qiita.com/organizations/admin-guild
Webサービスの運営者が知見を共有するためのコミュニティ
皆が新しいチャレンジを楽しみながらどんどん行い、そこで得た知見が皆に共有される
自分のチャレンジにも皆が背中を押してくれて、やる気が上がる最高のコミュニティ
Engineering Manager Meetup
https://engineering-manager-meetup.connpass.com/
エンジニアリングマネージャーの知見を共有するためのコミュニティ
マネジメントについて困っていることを相談すると皆から助言してもらえる
エンジニアと人生コミュニティ
https://community.camp-fire.jp/projects/view/280040
発信に対する知見や刺激が多く、発信することの背中を押してくれるコミュニティ
メンバーの発信や発信による成功を見ることで、発信のモチベーションが上がる
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
18 /65


# Page. 19

![Page Image](https://bcdn.docswell.com/page/637KNN847D.jpg)

社外イベントで発表
私が初めての社外イベントで無事に発表できたのは、
コミュニティの皆が、迷っている時に背中を押してくれたり、
初めての発表資料を事前にレビューしてくれたおかげ
1回目が1番敷居が高いので、
勇気を出して1回目をやって本当に良かった
社外イベントでの発表は、技術記事でいいねをもらうのとは
また違って、顔の見える人からフィードバックをもらえたりなど
新たな刺激、成長のキッカケ
社外イベントは参加するだけより発表した方が100倍楽しい
(1回目の発表後、1年間で7回くらい発表)
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
19 /65


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4LJ3VV2D75.jpg)

カンファレンスの公募セッションに応募
最初に応募した時は落選(初めての発表から半年後)
自分が公募セッションに当選するなんて、確率的には0%に近い
でも 0% じゃないと思ったからチャレンジ
当選確率を上げるためにスライドのドラフト版(70P)を作って応募
落選する経験を糧にして成長し、繰り返し応募し続ければ、
いつか当選できるはず
その結果、Developers Summit 2020 KANSAI で当選
人生で最高のプレゼンをするために2ヶ月間全てのプライベートの
時間を費やして、自分が納得するまで資料の改善や発表練習し、
ベストスピーカー賞1位を受賞
その後も、楽しく技術記事投稿や社外発表を継続
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
20 /65


# Page. 21

![Page Image](https://bcdn.docswell.com/page/V8JD88Z2JG.jpg)

自己紹介(現在)
名前：小島 優介
活動(2年半前)：
社外での発表経験なし
社外での勉強会の参加経験なし
技術記事の投稿経験なし
活動(現在)：
Developers Summit 2020 KANSAI ベストスピーカー賞1位
ITエンジニア向け月刊誌「Software Design」今月発売号から連載
Qiita/Zenn/Note/Youtubeなどで通算100万PVの情報を発信
発信活動を始めたことで、たくさん成長できて、
多くの人から役に立ったと言われるので、人生が凄く楽しくなった21/65
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.


# Page. 22

![Page Image](https://bcdn.docswell.com/page/4VEP88DLE8.jpg)

過去の自分のような発表初心者を支援したい
発信活動の中で難しいのが「初めての社外発表」
だから初めての発表がしやすいコミュニティを立ち上げて運営中
発信活動の初心者や設計の初心者が
頑張って壁を乗り越えた話をテーマにしたLT大会を開催
社外発表に興味はあるけど発表経験なしの人や、
設計の初心者で悩んでいる人にとって、その背中を押すイベント
参加登録して視聴してもらえると歓喜
3/30(水) 20:00
Youtube Live配信
詳細はこちら
Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima
© DENSO CORPORATION All Rights Reserved.
22 /65


