Upgrade to Pro — share decks privately, control downloads, hide ads and more …

家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介

YukiOgawa
February 06, 2025

家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介

2025/2/5 Postman API Night Osaka 2025 Winter

YukiOgawa

February 06, 2025
Tweet

More Decks by YukiOgawa

Other Decks in Technology

Transcript

  1. ©Mitsubishi Electric Corporation 2 0 2 5 / 2 /

    5 IoT・ライフソリューション新事業推進センター 小川 雄喜 家電アプリ共通P F の API 利用と Pos t ma n 活 用 事 例 ご 紹 介 2025.2.5 Postman API Night Osaka
  2. ©Mitsubishi Electric Corporation 2 自己紹介 • 主な仕事 • 三菱電機家電IoT共通プラットフォーム Linova

    • 家電総合アプリMyMU内アプリ • 経験 • 生まれも育ちも横浜ですが、2021年4月から京都です • 北米ジョージア州に1年だけ住んでいました • その他活動 • 社内:MAWS-UG(Mitsubishi Electric AWS User Group) • 社外:JAWS-UG関西の運営、JAWS DAYSボランティア • 好きなAPI • GraphQL(もっと触りたい)
  3. ©Mitsubishi Electric Corporation 6 三菱電機グループの事業と組織 空調・冷熱機器 ・システム 住宅設備機器 ・システム 家電機器

    ◦IoT・ライフソリューション 新事業推進センターの業務 リビング・デジタルメディア事業本部の ソリューション・サービスにおいて以下を担当 (20年4月発足) ・事業企画 ・プラットフォーム開発・運営 ・新事業インキュベーション推進 IoT・ライフソリューション新事業推進センター
  4. ©Mitsubishi Electric Corporation 7 家電IoTソリューション コンセプトと取組み ・エネルギーの見える化アプリ ミエネル ・条件設定に基づく自動制御 (あったかリンク、スマートe-Flo)

    ・霧ヶ峰REMOTE・おやすみサポート ・あったかリンク ・故障予知・診断 ・高齢者みまもり MeAMOR ・レシピサイト連携・冷蔵庫つながるアプリ ・IHクッキングヒーターアプリ 他社 ECHONET Lite 対応製品 オープン化 循環型デジタルエンジニアリング企業を目指し ・お客様から得られたデータをデジタル空間に集約、分析 → 新たな価値の創出 → 社会課題の解決に貢献 → 働きやすく暮らしやすい「しあわせな社会」を実現 三菱電機 家電統合アプリ MyMU(マイエムユー) 三菱電機 IoT製品 IoTライフソリューション プラットフォーム Linova(リノバ) MyMUデータ キャンペーンコード 利用履歴 IoT機器データ 省エネ 快適 自動化 遠隔保守 みまもり スマートe-Flo 情報発信 外部サービス データ統合分析基盤 KOTOLiA データ活用 新たな価値 課題解決 データ収集 アプリ、製品に搭載
  5. ©Mitsubishi Electric Corporation 外部サービス連携 (オープン化) 8 家電IoTソリューション プラットフォーム概要 当社製品 プロトコル変換器(オープン化)

    IoTアダプター 修理・保守 販売・提案 課金・回収 再エネソリューション Living・EARTH デジタル田園都市 石川県能美市 空調ソリューション テストベッドクラウド クラウド型HEMS ミエネル グループ内 ITシステムとの連携 顧客情報を統合 くらし×おトク+サイト、 MyMU 機能拡張を継続 ECHONET Lite 機器対応 オートメーション機能 仮想機器 など 生活支援ソリューション 最適環境IEQソリューション ライフソリューション /循環型ソリューション 外部サービス Webサイト 修理 サービス 電力サービス 公共サービス 家庭サービス ビルサービス IT-OT連携基盤 ECHONET Lite*1機器 (他社機器*2・センサーなど) 機器接続レイヤー ビジネスロジック 共通 Web API データベース ライフサイクル 安全・安心&快適 グリーンエナジー 家電統合アプリ MyMU データマート データウェアハウス データレイク データ分析基盤 KOTOLiA IoT共通プラットフォーム Linova 機器機能の 高度化・知能化 連携制御・ 自動化の実現 共創による新サービス創出 *1: ECHONET Liteは、一般社団法人エコーネットコンソーシアムの登録商標 *2: 蓄電池、太陽光発電システムなど
  6. ©Mitsubishi Electric Corporation 9 MyMUと繋がる豊富なIoT製品・サービス 13の機種群、2つのセンサー群、7つのサービス機能を実現! ※エコキュートは関西電力の登録商標です 三菱エコキュート 三菱ルームエアコン 霧ヶ峰

    バス乾燥・暖房・ 換気システム 脱衣室暖房機 分電盤 三菱換気扇 (スマートスイッチ) ロスナイセントラル 換気システム 三菱冷蔵庫 環境センサー (CO2/温度/湿度) emoco (エモコアイセンサー) IHクッキング ヒーター おやすみサポート あったかリンク MeAMOR 太陽光発電 蓄電池 燃料電池 くらし×オトク+サイト ハウスクリーニング 家事代行 ミエネル エアリゾート (全館空調システム)
  7. ©Mitsubishi Electric Corporation 11 LinovaにおけるAPIアーキテクチャ 外部サービス連携 (オープン化) 当社製品 プロトコル変換器(オープン化) IoTアダプター

    修理・保守 販売・提案 課金・回収 再エネソリューション Living・EARTH デジタル田園都市 石川県能美市 空調ソリューション テストベッドクラウド クラウド型HEMS ミエネル グループ内 ITシステムとの連携 顧客情報を統合 くらし×おトク+サイト、 MyMU 機能拡張を継続 ECHONET Lite 機器対応 オートメーション機能 仮想機器 など 生活支援ソリューション 最適環境IEQソリューション ライフソリューション /循環型ソリューション 外部サービス Webサイト 修理 サービス 電力サービス 公共サービス 家庭サービス ビルサービス IT-OT連携基盤 ECHONET Lite*1機器 (他社機器*2・センサーなど) 機器接続レイヤー ビジネスロジック 共通 Web API データベース ライフサイクル 安全・安心&快適 グリーンエナジー 家電統合アプリ MyMU データマート データウェアハウス データレイク データ分析基盤 KOTOLiA IoT共通プラットフォーム Linova 機器機能の 高度化・知能化 連携制御・ 自動化の実現 共創による新サービス創出 *1: ECHONET Liteは、一般社団法人エコーネットコンソーシアムの登録商標 *2: 蓄電池、太陽光発電システムなど API Gateway Lambda DynamoDB API Gateway + Lambda + DynamoDBを基本とした サーバレスアーキテクチャを採用 共通 Web API
  8. ©Mitsubishi Electric Corporation 12 LinovaのAPI拡張開発 アプリからの要望により、共通APIの改修・新規開発 • 開発内容 • データ/データベース構造の変更

    • レイテンシー改善 • オーバーフェッチ/アンダーフェッチ • ページング対応 • ステータスコード細分化 • バグ修正 : アプリが増えることで、共通APIへの要望が多くなる・・・ データ項目を追加し たから、取得できる ようによろしく! もっとレスポン スを早くして! 処理面倒だから、 必要なデータだけ 渡して! データ量多くなって 応答制約に引っかか るんだけど・・・ このAPIのHTTPス テータス、他と 違くない? グサッ! グサッ! グサッ!
  9. ©Mitsubishi Electric Corporation 13 API拡張開発時の懸念 • 改修対象APIで想定外のAPIリクエスト/レスポンスの変更がないか? • 増えていくアプリ側の影響を設計者だけが把握することは困難 •

    現状のアプリのAPIの使い方で問題ないことを証明 • 大きくレイテンシーが変化することがないか? • 取得するデータが増えた→レイテンシーが大きく下がった ではNG! • 実は影響があったAPIがないか? • サイレントな修正が入っていないか? • APIの変更点確認の漏れがないか? リリースに際してAPIレイヤーでの影響確認が必須 検討事項 が多い!
  10. ©Mitsubishi Electric Corporation 14 API試験での課題 • ①試験の属人性が高い • 過去の試験結果が適切に引き継がれない •

    試験スクリプトは各担当者で作り込まれることが多く、属人性が高い • ②複雑なユースケースの試験作成 • API呼び出し順序や前提条件の生成が難しい • 設計書を頼りにAPI呼び出し順序や前提条件を明記して進める必要がある • ③試験結果のレポート出力 • API呼び出しレスポンスから、自動的に試験レポートを生成したい Postmanを活用して、API試験を効率化!
  11. ©Mitsubishi Electric Corporation 15 ①属人性への対応 • 試験用コレクションはユースケース単位でまとめる • ワークスペースを切り替えることなく試験可能 •

    ランナーで順番にAPIを起動することでシステム試験にも対応 • ランナーの実行回数は制限があるので、必要に応じてプランを検討する API試験をコレクションでまとめてワークスペースで共有 📂システム試験用コレクション > 📂ユーザー機能試験 > 📂ユーザー登録試験 > 📂ユーザー削除試験 > 📂◦◦機能試験 > 📂□□機能API : 📂脆弱性試験用コレクション > 📂ユーザー機能試験 > 📂ユーザー登録試験 > 📂ユーザー削除試験 > 📂◦◦機能試験 > 📂□□機能API : システム試験 脆弱性試験 📂バグ試験用コレクション > 📂バグ001試験 > 📂前提条件 > 📂本試験 > 📂片付け > 📂バグ002試験 : 特定バグ試験
  12. ©Mitsubishi Electric Corporation 17 スクリプトによる試験 pm.collectionVariables.set("responseHistory", pm.collectionVariables.get("responseHistory")+pm.info.reques tName+'>'+responseBody+'¥r'); var data

    = JSON.parse(responseBody); if ( data.guestUser && data.guestUser.length !== 0 ) { pm.environment.set("areaId", data.guestUser[0].userId); } pm.test(pm.info.requestName, function () { pm.response.to.have.status(200); }); pm.test(“ゲストユーザー確認", function () { pm.expect(data.guestUser.length).to.eql(1); }); ログ保存用 ゲストユーザーがある場合、 ゲストユーザーのユーザーIDを環境変数の userIdに設定する HTTPステータスコードが200であれば、 成功 ゲストユーザーが1つであれば、 成功 JavaScript + Postmanオブジェクトで試験を記述
  13. ©Mitsubishi Electric Corporation 20 ③試験結果のレポート出力 • コレクションをNewmanで実行し、CI/CDプロセスに組み込み • Newman:PostmanのCLI版 •

    試験をほぼ自動化、CodePipelineへの組み込みを実施 • APIで試験レポートを登録できるTestRailを利用 • Newmanと合わせてTestRail用レポーターが必要 試験管理ツールとAPIで連携した試験レポートの自動生成 https://qiita.com/_YukiOgawa/items/a720c9736fe2970369e7
  14. ©Mitsubishi Electric Corporation 21 試験用Collectionによる試験自動化 試験環境 試験者 CodeCommit 試験Collection 試験Environment

    CodeBuild CodePipeline Fargate 試験レポート 作成&改修 Git Push 試験Collectionの実行 (API Request/Response) 試験結果の レポート登録 試験結果の閲覧(Webサイト) API Gateway Lambda DynamoDB 試験対象
  15. ©Mitsubishi Electric Corporation 23 まとめ:API試験での課題に対するPostmanでの解決 • ①試験の属人性が高い • ワークスペース共有による試験コレクションを共有する •

    コレクションはフォークし、プルリクエストでマージしていく • ②複雑なユースケースの試験作成 • Flowsにより各フェーズでの可視化が便利 • ③試験結果のレポート出力 • Newman + TestRail連携で自動試験化