Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介
Search
YukiOgawa
February 06, 2025
Technology
0
110
家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介
2025/2/5 Postman API Night Osaka 2025 Winter
YukiOgawa
February 06, 2025
Tweet
Share
More Decks by YukiOgawa
See All by YukiOgawa
アジャイル開発導入の取り組み事例 HW文化が色濃く残る組織へのアジャイル導入
yukiogawa
0
36
部門横断チームによる生成AI導入の壁突破事例ご紹介
yukiogawa
1
45
AWSコミュニティビルダーになりたいんじゃ!
yukiogawa
2
200
生成AIによる業務利活用アプリを、部門横断チームが3日でPoCを作ってみた!
yukiogawa
1
480
初学者向けにサーバーレスアーキテクチャを体験できるハンズオンを考えてみた
yukiogawa
0
470
Bedrock Claude3を使って市場対応をDX化を検討してみた
yukiogawa
2
1.2k
Postmanを活用した家電アプリプラットフォームAPIの試験効率化
yukiogawa
1
490
Other Decks in Technology
See All in Technology
第13回 Data-Centric AI勉強会, 画像認識におけるData-centric AI
ksaito_osx
0
130
Amazon Location Serviceを使ってラーメンマップを作る
ryder472
2
250
AWSでRAGを実現する上で感じた3つの大事なこと
ymae
3
910
開発者が自律的に AWS Security Hub findings に 対応する仕組みと AWS re:Invent 2024 登壇体験談 / Developers autonomously report AWS Security Hub findings Corresponding mechanism and AWS re:Invent 2024 presentation experience
kaminashi
0
140
依存関係があるコンポーネントは Barrel ファイルでまとめよう
azukiazusa1
3
470
[TechNight #86] Oracle GoldenGate - 23ai 最新情報&プロジェクトからの学び
oracle4engineer
PRO
1
220
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
120k
Next Step: Play Time!
trishagee
2
150
データの品質が低いと何が困るのか
kzykmyzw
3
400
Datadog APM におけるトレース収集の流れ及び Retention Filters のはなし / datadog-apm-trace-retention-filters
k6s4i53rx
0
180
パブリッククラウドのプロダクトマネジメントとアーキテクト
tagomoris
4
960
AIプロダクト開発から得られた知見 - 2025年1月版
takaakikakei
0
180
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
33
3.1k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Fireside Chat
paigeccino
34
3.2k
Optimizing for Happiness
mojombo
376
70k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
The Invisible Side of Design
smashingmag
299
50k
Bash Introduction
62gerente
610
210k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
Documentation Writing (for coders)
carmenintech
67
4.6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.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