Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

REST API マスターへの道 - Office 365 パワーユーザー向け

Power Platform(PowerApps / Microsoft Flow / Power BI)で REST API を利用したい非開発者向けです。

  • Login to see the comments

REST API マスターへの道 - Office 365 パワーユーザー向け

  1. 1. Office 365 パワーユーザー向け REST API マスターへの道 Road to the REST API NINJA 太田 浩史 Office Apps and Services – Microsoft MVP Office 365 パワーユーザー向け REST API マスターへの道 p. 1
  2. 2. 自己紹介 太田 浩史 (おおた ひろふみ) • 2008 年ごろから、SharePoint を中心に活動しています。 • 自社やお客様の Office 365 活用のご支援もしています。 • ちょっとした工夫や役立ちそうな小ネタが好きです。 Office 365 パワーユーザー向け REST API マスターへの道 p. 2 Microsoft MVP 2013 - 2014 SharePoint Server 2015 - 2018 Office Servers and Services 2018 – 2019 Office Apps & Services www.slideshare.net/hirofumi_ota idea.tostring.jp ブログとか資料とかソーシャルとか twitter.com/hrfmjp www.facebook.com/idea.tostring.jp
  3. 3. ああ… Office 365 パワーユーザー向け REST API マスターへの道 p. 3 Microsoft Flow とか PowerApps とか 楽しそうだけど REST API とか JSON とか言うじゃない?
  4. 4. ああ… Office 365 パワーユーザー向け REST API マスターへの道 p. 4 そんなん知らねーよ! ではなく 覚えましょう
  5. 5. 目的とゴール Office 365 パワーユーザー向け REST API マスターへの道 p. 5 目的 • Microsoft Flow / PowerApps / Power BI と「REST API」という 聞きなれない用語が出てくるようになった • 奇妙な JSON も知っておく必要もありそうだ • よし、ちょっと勉強してみよう ゴール • API リファレンスを読んで REST API を使えるようになる • いろんなところで出てくる JSON を読み書きできるようになる • Microsoft Flow などから REST API を使えるようになる • ドヤ顔しながら他の人に教えてあげられるようになる
  6. 6. 諸注意 Office 365 パワーユーザー向け REST API マスターへの道 p. 6 正しく理解することを目指していません “使える” までを最短で解説します。
  7. 7. REST API とは? Office 365 パワーユーザー向け REST API マスターへの道 p. 7 • クラウド・サービスや Web システムを HTTP で操作する仕組み • HTTP はこのご時世いろんなアプリから呼べるし、Web サーバーな ら当たり前に使えるんだから便利だよねー。という感じ。 https://idea.tostring.jp 奇跡の一致
  8. 8. HTTP とは? Office 365 パワーユーザー向け REST API マスターへの道 p. 8 • ユーザーからの要求(リクエスト)に対してサーバーが何らかの 応答(レスポンス)をする決まり事 アレを ちょうだい ンモー 要求 応答
  9. 9. 親しき中にも礼儀あり Office 365 パワーユーザー向け REST API マスターへの道 p. 9 • お願いをするときはちゃんとルールを守りましょう 方法 (メソッド) お願いする相手 (エンドポイント) 欲しいもの (リソース) https://idea.tostring.jp/image.pngGET 翻訳すると… 「idea.tostring.jp」さん、僕は「image.png」を「GET」したいです。
  10. 10. Office 365 パワーユーザー向け REST API マスターへの道 p. 10 は? 💢
  11. 11. サーバーさんを怒らせないために Office 365 パワーユーザー向け REST API マスターへの道 p. 11 • しっかりと “ルール” を覚えておきましょう メソッド リクエストヘッダー リクエストボディー 宛先 リソース https://idea.tostring.jp/image.png GET User-agent: Mozilla/5.0 Accept: */* いろいろ
  12. 12. メソッド Office 365 パワーユーザー向け REST API マスターへの道 p. 12 • メソッドは次のあたりを知っておけば良いです。 メソッド 意味 GET サーバー上のデータやファイルが欲しい POST サーバーにデータやファイルを送りたい PUT サーバーのデータやファイルを置き換えたい DELETE サーバーのデータやファイルを削除したい
  13. 13. リクエストヘッダー Office 365 パワーユーザー向け REST API マスターへの道 p. 13 • リクエストヘッダーは次のあたりを知っておけば良いです。 ヘッダー 意味 User-Agent こっちのブラウザの種類など Accept どんな種類のデータが欲しいか Authorization 認可を受けるための情報とか Content-Type こっちからデータを送る場合のデータの種類
  14. 14. 覚える必要はありません Office 365 パワーユーザー向け REST API マスターへの道 p. 14 • まず確実にリファレンスに書いてありマス。 • kintone API のリファレンスを見てみます(わかりやすい) https://developer.cybozu.io/hc/ja/categories/200147600-kintone-API – Kintone REST API の共通仕様 – レコードの取得 – レコードの登録 – レコードの更新 – レコードの削除
  15. 15. kintone REST API の共通仕様 Office 365 パワーユーザー向け REST API マスターへの道 p. 15 • どんなリクエストヘッダーが必要か – 認証まわり – 要求に応じて変わるあたり
  16. 16. レコードの登録 Office 365 パワーユーザー向け REST API マスターへの道 p. 16 • どんな要求をする必要があるか – メソッド – エンドポイント/リソース – リクエスト ボディ ほらでたよ… JSON
  17. 17. Let’s Practice Office 365 パワーユーザー向け REST API マスターへの道 p. 17 • 興味のあるサービスの REST API リファレンスを探してみよう • REST API リファレンスから次の項目を読み取ってみよう – メソッド – エンドポイント – リソース – リクエスト ヘッダー – リクエスト ボディ
  18. 18. JSON Office 365 パワーユーザー向け REST API マスターへの道 p. 18 • プログラムのコードのようにも見えますが、なにかしらの特別な ものすごい処理を実行するものではありません • データやその構造を表しているものです • CSV や XML と役割は同じです • ルールさえ覚えておけば簡単に読み書きできます
  19. 19. JSON – 基本形 Office 365 パワーユーザー向け REST API マスターへの道 p. 19 { “firstName” : “Hirofumi”, “lastName” : ”Ota”, “sex” : “Male” } データの まとまり 項目名 値 項目の区切り ※最後はカンマなし
  20. 20. JSON – 入れ子(ネスト) Office 365 パワーユーザー向け REST API マスターへの道 p. 20 { “name” : { “firstName” : “Hirofumi”, “lastName” : ”Ota”, “displayName” : “Hirofumi Ota” }, “sex” : “Male” } データの まとまり name を構成する 項目と値
  21. 21. JSON – 配列(複数のデータ) Office 365 パワーユーザー向け REST API マスターへの道 p. 21 { “persons” : [ { “firstName” : “Hirofumi”, “lastName” : ”Ota”, “sex” : “Male” }, { “firstName” : “Taro”, “lastName” : ”Yamada”, “sex” : “Male” } ] } 配列のしるし かっこの形が違う ひとつめのデータ ふたつめのデータ
  22. 22. データの型 Office 365 パワーユーザー向け REST API マスターへの道 p. 22 データの型(種類) JSON での表し方 文字列 “name” : “Hirofumi” 数字 “age” : 18 True or False (Boolean) “Cool” : true
  23. 23. 実際に読んでみましょう Office 365 パワーユーザー向け REST API マスターへの道 p. 23 • JSON のサンプルが記述されてあるリファレンスを探しましょう • livedoor お天気 Web サービス仕様を見てみます http://weather.livedoor.com/weather_hacks/webservice • データの項目は何か? • データの値は何か? • 入れ子の項目は何か? • 配列の項目は何か? • 文字列型の項目、数字型の項目は何か?
  24. 24. Let’s Practice Office 365 パワーユーザー向け REST API マスターへの道 p. 24 • 興味のあるサービスの REST API リファレンスを探してみよう • サンプルの JSON があったら次の項目を読み取ってみよう – データの項目 – データの値 – 入れ子の項目 – 配列の項目 – 文字列型の項目、数字型の項目
  25. 25. Microsoft Flow + REST API + JSON Office 365 パワーユーザー向け REST API マスターへの道 p. 25 • ボタンを押したら livedoor お天気 Web サービスから東京の天気を 取得して通知を受け取る なにを設定するのか? ヒント 東京の ID は 130010 まずは REST API を呼ぶところまで…
  26. 26. ヒント Office 365 パワーユーザー向け REST API マスターへの道 p. 26 方法は GET
  27. 27. ヒント Office 365 パワーユーザー向け REST API マスターへの道 p. 27 URI は http://weather.livedoor.com/forecast/ webservice/json/v1?city=130010
  28. 28. ヒント Office 365 パワーユーザー向け REST API マスターへの道 p. 28 ヘッダーは なし!
  29. 29. ヒント Office 365 パワーユーザー向け REST API マスターへの道 p. 29 本文は なし!
  30. 30. 実行結果 Office 365 パワーユーザー向け REST API マスターへの道 p. 30 • どんな結果が返ってきたか見てみよう – さっき読み取った JSON と比べてみよう – 今日の天気は何かな? – 今日の最高気温は何度かな? – 明日の天気は何かな? – 明日の最高気温は何度かな?
  31. 31. Microsoft Flow の JSON の解析アクション Office 365 パワーユーザー向け REST API マスターへの道 p. 31 • REST API から返ってきた値を「サンプルのペイロードを使用して スキーマを生成する」機能を利用してスキーマに変換 便利だけど上手く解析できない場合もある Null が返ってくる時など(今回のパターン)
  32. 32. Microsoft Flow の Notifications アクション Office 365 パワーユーザー向け REST API マスターへの道 p. 32 • 解析された JSON の結果を Notifications アクションに渡す
  33. 33. Microsoft Flow + JSON Office 365 パワーユーザー向け REST API マスターへの道 p. 33 • 式で JSON の値にアクセスする • JSON を読めるようになったあなたなら出来る actionBody('HTTP').forecasts[0].temperature.max.celsius HTTP という名前のアクションから 出力された本文(つまり JSON) forecasts という配列の 一番最初のデータ 0 から始まるのはルール データ構造に従って . で繋いでいくだけ 今日の最高気温(摂氏)
  34. 34. Re: Microsoft Flow の Notifications アクション Office 365 パワーユーザー向け REST API マスターへの道 p. 34 • 式を使って取り出した値を Notifications アクションに渡す
  35. 35. Let’s Practice Office 365 パワーユーザー向け REST API マスターへの道 p. 35 • 他のデータを使って通知を受けてみよう • 次のような項目を組合わせて好きな通知を作成しよう – 今日の天気 – 明日の天気 – 明日の気温 – お天気概況文
  36. 36. Office 365 パワーユーザー向け REST API マスターへの道 終製作・著作 @hrfmjp idea.tostring.jp Fin.

×