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
Webサービス開発でのPostman活用方法
Search
中川 聡也
January 29, 2024
Programming
0
200
Webサービス開発でのPostman活用方法
Postman Tokyo Meetup 2024.1 発表資料
中川 聡也
January 29, 2024
Tweet
Share
More Decks by 中川 聡也
See All by 中川 聡也
Vue.js_好きに捧ぐ Nuxt Hub で簡単に始めるCloudflare
xiombatsg
1
68
Cloudflare Workers でWebGPUと戯れる
xiombatsg
0
140
受託開発でGitLab CI を活用していく
xiombatsg
1
440
Cloudflare Worker x Momento でリージョンと戦う
xiombatsg
0
680
OCHa Cafe Season7をふりかえって
xiombatsg
0
260
Other Decks in Programming
See All in Programming
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
330
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
860
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.3k
Jakarta EE meets AI
ivargrimstad
0
600
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
280
みんなでプロポーザルを書いてみた
yuriko1211
0
260
どうして僕の作ったクラスが手続き型と言われなきゃいけないんですか
akikogoto
1
120
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
役立つログに取り組もう
irof
28
9.6k
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
610
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Why Our Code Smells
bkeepers
PRO
334
57k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Designing the Hi-DPI Web
ddemaree
280
34k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Writing Fast Ruby
sferik
627
61k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Transcript
Postman Tokyo Meetup 2024.1 Webサービス開発でのPostman活⽤⽅法 2024/1/29 株式会社Future Techno Developers 中川 聡也
謝辞 本日は登壇の機会をいただき、ありがとうございます。 まず初めに、主催者の皆様、そして参加者の皆様に 心から感謝申し上げます。 1
サーバーレス:Serverless/Cloudflare/Momento /TiUG ゲーム‧アプリ:IGDA Japan / Japan Android Group Cloud Native:OCha
Cafe! 他も顔出してます。どこかであったら声かけてください まずは⾃⼰紹介 @xiombatsg 2 中川 聡也|Satoya Nakagawa 何をしている⼈? 商品開発をしているお客様を技術⾯でご⽀援 チーム構築のご⽀援(Platform Engineer,SRE…) どんなジャンル? ゲーム/Webサービス/CG/組み込み/etc… どんなコミュニティに顔を出している? Zenn: https://zenn.dev/nakagawa_satoya Postman利⽤歴 6年
事業紹介 3 プロジェクト⽀援事業 Webサイト運営事業 ソフトウェア開発事業 Web診断事業 当社サービス 代理店‧顧客ご紹介企業様 お客様 保守担当メンバー‧パートナー
弊社は「ソフトウェア商品開発をサポートする」企業です
最近こんなチラシを作りました
コミュニティ宣伝
もめんと会
本題
今⽇話すこと アジェンダ 8 無料版で頑張る話ではないです。 01 ⾒積り編 02 設計編 03 実装編
04 テスト、運⽤、その他 05 今後したいこと
まずは、 Postmanの環境
PostmanはPro プラン運⽤ 1. うちでは固定のスタッフがほとんどいないので、プロジェクト採⽤を しています。 2. 時には海外のオフショアの⽅などもアサインしており、セキュリティに はとにかく気をつけています。 10 Proプランで運⽤しています
Postmanファイルの受け渡しで パーソナル運⽤できますが、作 業効率やセキュリティを考え て、Proにしています
ワークスペースの作成 1. プロジェクト採⽤のため、チーム権限でもアクセスできないように 2. 複数掛け持ちの⽅は、両⽅に招待する形を取っています 11 ワークスペースの作成は常にプライベートで 本当はグループ管理にしたいん ですが、Enterprise 利⽤が必要
になってくるためこの形で落ち着 いています
ちなみに、料金 Pro プラン ※ピーク時は10~20slotsを使う時も 1. 1年で⾊々メンバーが⼊れ替わるのでMonthlyで⽉毎に管理しています(slot減らすのは⾯倒) 2. Flow Editor は中川が実験のために⼊れています(他のメンバーには触らせることはないかなと)
⾒積り編
Web開発案件⾒積りってどうやってます? 14 Laravel? Ruby on Rails? Wordpress? microCMS? 外部サービスは何使う? 画⾯数は?
API数は? テーブル数は?
⾒積りで気にしていること 1. ⾒積りを求められるけど、その⾒積りがほぼ予算になる 2. ⾒積り担当者と作業担当者が変わるので、⾒積りの想定からずれることが多い 3. ⾒積り段階である程度、概要設計みたいなことはいつもしているので、これを作 業担当者にしっかり伝える 4. でも、失注したくないから翌営業⽇には⾒積り出したい
15 ⾒積りは早さと正確さが求められるけど、雑にやりたくない
特に外部連携の⾒積り難しいですよね? 16 SNS? Payment? お客様の基幹システム? 画⾯数やAPI数はわかる けど、 外部連携は触らないとわ からないなぁ
うちではPostman で検討つけています 17 Postmanでは ある程度主要なサービスはワークスペースがある ことが多いです とにかくそれっぽいのを⾒つけたらワークスペースをfork
みつからない場合は 18 みつからない場合でも公式ドキュメントを読んで、コレクショ ンを作って、検討するのはすぐにできます。 例:銀⾏コードを取得するAPI SwaggerやOpenAPIが公式で公 開されているケースも増えてきた ので、そちらを探してインポート するのでも良いです。
⾒積り後に向けて 19 この段階では失注する可能性はありますが、ストックしておく ことで、同様の案件の時に素早く検討できるようになります。 また、設計でも結局使いたくなるので、⾒積りで作った ワークスペースは残しましょう
設計編 ※画⾯設計やテーブル設計など⾊々あります がそこは割愛
うちでは設計はCollectionで 21 Collection で設計するメリット 1. OpenAPIが普通に難しい 2. 外部の⽅が書けることはほぼ稀 3. ⾒積りの資産が使える
Collection で設計するデメリット 1. OpenAPIの納品が必要だと⾯倒(うちのケースだとほぼないです。) 2. 設計タイミングではレスポンスを返すバックエンドが構築できていないことが多い
OpenAPIって難しくないですか? 22 しっかり書こうとすると それなりに⼯数かかる モックサーバーを作っ て、Collectionでリクエ ストを保存して活⽤する ぐらいでよくないです か?
Collection から OpenAPIには変換できます ※https://www.postman.com/postman/workspace/postman-open-technologies-convert-post man-collections-into-openapi/overview うちではPostman to OpenAPI を使っています。
OpenAPIに変換する流れ 変換 1. Collectionをエクスポート 2. postman to openapi で openapi.yml
に変換 (エラーが出る時があるので直します) 3. OpenAPIファイルに
OpenAPIにできれば htmlのドキュメントも作成できます うちではReDoc を使⽤しています。OpenAPI Generator で吐き出すHTMLだと⼀部出⼒されないもの があり、ReDocに落ち着きました ReDoc CLI で変換しています。
実装編
OpenAPI は 色々なソースコードに変換できます ※https://openapi-generator.tech/ ⼤体の⾔語、環境向けに⽤意されているので、ほとんどカバーできます。
フロントはtypescriptで 1. typescript-axiosも使⽤していた時期もありますが、Node v18以降で fetch が標準対応されたので、fetch版を使⽤しています 2. またaxiosは⾊々対応が必要なことも多かったので、特に理由がなけれ ばfetchの利⽤をお勧めします。 3.
⾮typescript環境で使⽤したい場合は、typescriptだけ、bundleする対 応もしていましたが、最近はtypescriptをそのまま使⽤できる環境が増 えたので、typescriptで利⽤しています。 28 typescript-fetchで運⽤しています。
ラップして利用しています。 ※ラップして利⽤ ※Configurationをカスタマイズ
バックエンドは。。。実は使用していません 1. Laravel の場合 laravel-json-api を使⽤しているのですが、Generator の出⼒をそのまま活⽤することができません。 a. laravel-json-api の場合
スキーマファーストの開発になってくるの で、APIファーストと相性が悪く。組み込めないです。 b. laravel-json-apiを使⽤しないで、API作成したり模索中ではありま すが、プログラム構造上そのまま利⽤するのが難しいです。 2. Ruby, Java なども利⽤できる箇所もあるかもしれませんが、使⽤する フレームワークによって、使えたり使えなかったりがあるかと思いま す。 OpenAPI Generator の出⼒が噛み合わない
APIテスト編
APIテストはPostmanでしています 1. テストタブは開発時の実装確認に使⽤しています 2. 結合試験などのケースではコレクションを⼀つ⼀つ実⾏し、 結果を保存して、エビデンスにしています Postmanでのテスト テストタブではなくテストをコレクションで実⾏する 結合試験などのテストでは私が⾏うケースや外部テスターが⾏うケースなどあり、実装者とは別で ⾏うため、コレクションの実⾏結果をテストエビデンスにしています。
もちろんテストタブも Newman など CI環境でのテストに使⽤しています。
運⽤編
Postman モニターで外部サービスのダウン検知しています。 1. Postman モニターで外部サービスのダウン検知しています。 まだやり始めたばかり 2. サービスの死活監視はCloudWatch とかやっていると思いま すが、案外外部サービスの死活監視ってできていなかったの
で、定期的に実⾏して確認するようにしています。 Postman Monitor
最近起こって慌てたこと Rapid APIとは API Marketplace で 利⽤料を払って、使⽤する サービスです。お客様都合で、こちらの利⽤ケースがあります。 アプリが運営都合でなくなってしまい、代替サービスを探す Rapid
API のアプリがなくなってしまった 外部サービスのエンドポイントが急に変わる ⼀部のサービスですが、連絡もなく、変わるサービスがあります。 1年に数回あり、都度、切り替えて対応。 こういった課題をPostman Monitor で⾒える化
その他やっていること 1. 運⽤時の問い合わせなどのチェック 2. データの登録 3. などなど コレクションでデータメンテナンス
今後やりたいこと
設計にPostman Flowsを取り入れたい 1. 難しいロジックをPostman Flows で動くシーケンス図?とし て渡せれば実装者の⼿も早くなるのではと期待しています。 決済トランザクションなど難しいものはCollectionだけだとわかり づらい
ご清聴ありがとうございました
None