Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介
Search
YukiOgawa
February 06, 2025
Technology
1.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介
2025/2/5 Postman API Night Osaka 2025 Winter
YukiOgawa
February 06, 2025
More Decks by YukiOgawa
See All by YukiOgawa
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
250
AICoEでAIネイティブ組織への進化
yukiogawa
0
300
FASTでAIエージェントを作りまくろう!
yukiogawa
4
340
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
400
初渡米でも大丈夫!re:Invent2025を楽しく&安全に過ごす方法
yukiogawa
1
330
Amazon Q Developerの推しポイントを伝えたい
yukiogawa
0
400
AWS Summit Japan 2025 社内コミュニティによる企業文化創り ~MAWS-UGの挑戦とこれから~
yukiogawa
2
1.5k
AWS Community Builders Meetup 2025 Osaka登壇資料
yukiogawa
0
200
アジャイル開発導入の取り組み事例 HW文化が色濃く残る組織へのアジャイル導入
yukiogawa
0
220
Other Decks in Technology
See All in Technology
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
150
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
130
Claude Code本は、どのように執筆チームで書かれたか
oikon48
0
310
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
220
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
410
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
17
120k
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
660
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
410
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
290
Incremental HTTP
kazuho
5
2.1k
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
870
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
510
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The SEO Collaboration Effect
kristinabergwall1
1
590
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
910
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
760
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
350
Design in an AI World
tapps
1
350
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Transcript
©Mitsubishi Electric Corporation 2 0 2 5 / 2 /
5 IoT・ライフソリューション新事業推進センター 小川 雄喜 家電アプリ共通P F の API 利用と Pos t ma n 活 用 事 例 ご 紹 介 2025.2.5 Postman API Night Osaka
©Mitsubishi Electric Corporation 2 自己紹介 • 主な仕事 • 三菱電機家電IoT共通プラットフォーム Linova
• 家電総合アプリMyMU内アプリ • 経験 • 生まれも育ちも横浜ですが、2021年4月から京都です • 北米ジョージア州に1年だけ住んでいました • その他活動 • 社内:MAWS-UG(Mitsubishi Electric AWS User Group) • 社外:JAWS-UG関西の運営、JAWS DAYSボランティア • 好きなAPI • GraphQL(もっと触りたい)
©Mitsubishi Electric Corporation 3 1 Linovaの概要
©Mitsubishi Electric Corporation 4 当社グループのありたい姿 循環型デジタル・エンジニアリング
©Mitsubishi Electric Corporation 5 デジタル基盤「Serendie」
©Mitsubishi Electric Corporation 6 三菱電機グループの事業と組織 空調・冷熱機器 ・システム 住宅設備機器 ・システム 家電機器
◦IoT・ライフソリューション 新事業推進センターの業務 リビング・デジタルメディア事業本部の ソリューション・サービスにおいて以下を担当 (20年4月発足) ・事業企画 ・プラットフォーム開発・運営 ・新事業インキュベーション推進 IoT・ライフソリューション新事業推進センター
©Mitsubishi Electric Corporation 7 家電IoTソリューション コンセプトと取組み ・エネルギーの見える化アプリ ミエネル ・条件設定に基づく自動制御 (あったかリンク、スマートe-Flo)
・霧ヶ峰REMOTE・おやすみサポート ・あったかリンク ・故障予知・診断 ・高齢者みまもり MeAMOR ・レシピサイト連携・冷蔵庫つながるアプリ ・IHクッキングヒーターアプリ 他社 ECHONET Lite 対応製品 オープン化 循環型デジタルエンジニアリング企業を目指し ・お客様から得られたデータをデジタル空間に集約、分析 → 新たな価値の創出 → 社会課題の解決に貢献 → 働きやすく暮らしやすい「しあわせな社会」を実現 三菱電機 家電統合アプリ MyMU(マイエムユー) 三菱電機 IoT製品 IoTライフソリューション プラットフォーム Linova(リノバ) MyMUデータ キャンペーンコード 利用履歴 IoT機器データ 省エネ 快適 自動化 遠隔保守 みまもり スマートe-Flo 情報発信 外部サービス データ統合分析基盤 KOTOLiA データ活用 新たな価値 課題解決 データ収集 アプリ、製品に搭載
©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: 蓄電池、太陽光発電システムなど
©Mitsubishi Electric Corporation 9 MyMUと繋がる豊富なIoT製品・サービス 13の機種群、2つのセンサー群、7つのサービス機能を実現! ※エコキュートは関西電力の登録商標です 三菱エコキュート 三菱ルームエアコン 霧ヶ峰
バス乾燥・暖房・ 換気システム 脱衣室暖房機 分電盤 三菱換気扇 (スマートスイッチ) ロスナイセントラル 換気システム 三菱冷蔵庫 環境センサー (CO2/温度/湿度) emoco (エモコアイセンサー) IHクッキング ヒーター おやすみサポート あったかリンク MeAMOR 太陽光発電 蓄電池 燃料電池 くらし×オトク+サイト ハウスクリーニング 家事代行 ミエネル エアリゾート (全館空調システム)
©Mitsubishi Electric Corporation 10 2 P o s t m
a n 活 用 状 況
©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
©Mitsubishi Electric Corporation 12 LinovaのAPI拡張開発 アプリからの要望により、共通APIの改修・新規開発 • 開発内容 • データ/データベース構造の変更
• レイテンシー改善 • オーバーフェッチ/アンダーフェッチ • ページング対応 • ステータスコード細分化 • バグ修正 : アプリが増えることで、共通APIへの要望が多くなる・・・ データ項目を追加し たから、取得できる ようによろしく! もっとレスポン スを早くして! 処理面倒だから、 必要なデータだけ 渡して! データ量多くなって 応答制約に引っかか るんだけど・・・ このAPIのHTTPス テータス、他と 違くない? グサッ! グサッ! グサッ!
©Mitsubishi Electric Corporation 13 API拡張開発時の懸念 • 改修対象APIで想定外のAPIリクエスト/レスポンスの変更がないか? • 増えていくアプリ側の影響を設計者だけが把握することは困難 •
現状のアプリのAPIの使い方で問題ないことを証明 • 大きくレイテンシーが変化することがないか? • 取得するデータが増えた→レイテンシーが大きく下がった ではNG! • 実は影響があったAPIがないか? • サイレントな修正が入っていないか? • APIの変更点確認の漏れがないか? リリースに際してAPIレイヤーでの影響確認が必須 検討事項 が多い!
©Mitsubishi Electric Corporation 14 API試験での課題 • ①試験の属人性が高い • 過去の試験結果が適切に引き継がれない •
試験スクリプトは各担当者で作り込まれることが多く、属人性が高い • ②複雑なユースケースの試験作成 • API呼び出し順序や前提条件の生成が難しい • 設計書を頼りにAPI呼び出し順序や前提条件を明記して進める必要がある • ③試験結果のレポート出力 • API呼び出しレスポンスから、自動的に試験レポートを生成したい Postmanを活用して、API試験を効率化!
©Mitsubishi Electric Corporation 15 ①属人性への対応 • 試験用コレクションはユースケース単位でまとめる • ワークスペースを切り替えることなく試験可能 •
ランナーで順番にAPIを起動することでシステム試験にも対応 • ランナーの実行回数は制限があるので、必要に応じてプランを検討する API試験をコレクションでまとめてワークスペースで共有 📂システム試験用コレクション > 📂ユーザー機能試験 > 📂ユーザー登録試験 > 📂ユーザー削除試験 > 📂◦◦機能試験 > 📂□□機能API : 📂脆弱性試験用コレクション > 📂ユーザー機能試験 > 📂ユーザー登録試験 > 📂ユーザー削除試験 > 📂◦◦機能試験 > 📂□□機能API : システム試験 脆弱性試験 📂バグ試験用コレクション > 📂バグ001試験 > 📂前提条件 > 📂本試験 > 📂片付け > 📂バグ002試験 : 特定バグ試験
©Mitsubishi Electric Corporation • ワークスペースでチーム内でAPIコレクションと環境を共有 • コレクションを編集する場合はフォークが望ましい • Gitのようにコレクションの変更をプルリクエスト •
合格済みの試験コレクションのみを共有できる 16 ワークスペース共有とプルリクエスト
©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オブジェクトで試験を記述
©Mitsubishi Electric Corporation 18 ②複雑なユースケースの試験作成 Postman flowsで試験ユースケースをビジュアルに表現 Ifブロックで様々な ユースケースを分岐 APIレスポンスを変数
として接続できる レスポンス結果を ビジュアルに表現 Forブロックでリスト などを要素ごとに処理
©Mitsubishi Electric Corporation 19 参考:Postman Flowsオンラインハッカソン https://qiita.com/_YukiOgawa/items/8a11e2209021f74e6414 2位になりました
©Mitsubishi Electric Corporation 20 ③試験結果のレポート出力 • コレクションをNewmanで実行し、CI/CDプロセスに組み込み • Newman:PostmanのCLI版 •
試験をほぼ自動化、CodePipelineへの組み込みを実施 • APIで試験レポートを登録できるTestRailを利用 • Newmanと合わせてTestRail用レポーターが必要 試験管理ツールとAPIで連携した試験レポートの自動生成 https://qiita.com/_YukiOgawa/items/a720c9736fe2970369e7
©Mitsubishi Electric Corporation 21 試験用Collectionによる試験自動化 試験環境 試験者 CodeCommit 試験Collection 試験Environment
CodeBuild CodePipeline Fargate 試験レポート 作成&改修 Git Push 試験Collectionの実行 (API Request/Response) 試験結果の レポート登録 試験結果の閲覧(Webサイト) API Gateway Lambda DynamoDB 試験対象
©Mitsubishi Electric Corporation 22 参考:パフォーマンステストもPostmanで実施可能 対象APIで負荷を設定して実行可能
©Mitsubishi Electric Corporation 23 まとめ:API試験での課題に対するPostmanでの解決 • ①試験の属人性が高い • ワークスペース共有による試験コレクションを共有する •
コレクションはフォークし、プルリクエストでマージしていく • ②複雑なユースケースの試験作成 • Flowsにより各フェーズでの可視化が便利 • ③試験結果のレポート出力 • Newman + TestRail連携で自動試験化
None