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
APIクライアントを作ろう! / Let's make API client!
Search
papix
June 02, 2015
Technology
930
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
APIクライアントを作ろう! / Let's make API client!
papix
June 02, 2015
More Decks by papix
See All by papix
Houtou.pm #1
papix
0
1.9k
Perl歴約10年のエンジニアがフルスタックTypeScriptに出会ってみた
papix
1
750
YAPC::Kyotoの「全て」 / All of "YAPC::Kyoto"
papix
0
1.7k
イベントの中の人 / Inside the Events
papix
0
360
2022年に始めるPerlでWebサービス開発(趣味)
papix
0
630
ワーケーションに関する考察
papix
3
2.3k
(今更)Amplifyさっくり体験
papix
0
930
はてなにおけるGitHub Actions活用事例 / GitHub Actions in Hatena
papix
0
2.8k
ミススペルを発見するmisspellのご紹介 / Introduce misspell
papix
0
1.3k
Other Decks in Technology
See All in Technology
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
340
Making sense of Google’s agentic dev tools
glaforge
1
150
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
160
【Claude Code】鹿野さんに聞く 私の推しの並行開発環境 大公開 / claude-code-parallel-2026-07-15
tonkotsuboy_com
10
6k
GuardrailからGovernanceへ~AIエージェント運用の次の課題~
sbspsy
2
260
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
180
完全自律ロボットを作りたくて、先に開発を自律させた話(ROS Japan UG #63 LT)
rryz09
0
440
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
0
140
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
700
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
2
480
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
160
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
350
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
170
We Have a Design System, Now What?
morganepeng
55
8.2k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
The Pragmatic Product Professional
lauravandoore
37
7.4k
ラッコキーワード サービス紹介資料
rakko
1
3.9M
RailsConf 2023
tenderlove
30
1.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
First, design no harm
axbom
PRO
2
1.2k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
Building an army of robots
kneath
306
46k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Transcript
APIクライアントを作ろう! by papix (GaiaX Co. Ltd.)
papix (GaiaX Co. Ltd.) R&D Div. Technical Basis Gr. •
Infrastructure Engineer • “Reactio” Engineer • Recruitment Officer • Perl Community Specialist • “Perl Entrance” headmaster PAPIX papix _̲_̲papix_̲_̲ takayuki.fukumoto.92 Masteries http://papix.hatenablog.com/ _̲_̲papix_̲_̲ papics (Free materials) ※18時50分現在
None
突然ですが…
APIクライアント
作ったことありますか?
APIクライアント • WebサービスのAPIを叩く君 – Twitter -‐‑‒> Net::Twitter – ImKayac -‐‑‒> WebService::ImKayac::Simple – Mackerel
-‐‑‒> WebService::Mackerel • Perlスクリプトからお⼿手軽にWebサービス を利利⽤用できてとても便便利利 • CPANにもいっぱい公開されている
https://reactio.jp/ 先⽇日リリースした 障害対応に特化した コミュニケーションツールという ⾃自社サービス
の
APIクライアントを作ったので
その時に得た(調べた)知⾒見見を 発表しようと思います
名前空間
APIクライアントでよく使われる 名前空間を紹介するぜ!!!
Net !!!
WebService !!!
WWW !!!
以上だ!!!!!
名前空間 • Net – Net::Twitter – Net::Travis::API ... • WebService – WebService::ImKayac::Simple – WebService::Livedoor::Weather
... • WWW – WWW::Twilio::API – WWW::NHKProgram::API ...
どれ使えばええねん!!!
https://pause.perl.org/pause/query?ACTION=pause_̲namingmodules#Net
Net / WebService / WWW • ネットワークプロトコル – Net • アプリケーションプロトコル
– WebService or WWW WebService or WWWが良良さそう!
依存ライブラリ
依存ライブラリ • 少ないに越したことはない – 「重い」ライブラリに依存するのは避けたい – 利利⽤用者から敬遠される可能性もある • 良良く使われるライブラリ – HTTP Client: LWP,
Furl, HTTP::Tiny ... – Decoder: JSON, XML::LibXML, XML::Simple ... – URI, Class::Accessor::Lite, Encode, Carp ...
依存ライブラリ • WebService::Simple – Web ServiceのClientを作る為のシンプルな フレームワーク(yusukebeさん製) – WebService::Simpleを継承して シンプルにクライアントを実装できる • 例例:
WebService::Simple::AWS ...
テスト
テスト • 「実際のAPIを叩く」テストを書くのはNG – ネットに繋がっていないとテストが通らない – テストする度度にWebサービスにアクセスが… • 1. 異異常ケースのテストを書く – パラメータが⾜足りない場合とか… – フォーマットが不不正な場合とか…
• 2. APIを叩く部分のmockを作る – 実際にAPIを叩かずにレスポンスを得る
Test::Mock::Guard • 任意のメソッドに対するモック
Test::Mock::Furl • Furlのモック – レスポンスを偽装できる – LWPならTest::Mock::LWPなど...
気をつけるべきところ • ドキュメント – Synopsisで利利⽤用例例を⽰示す – 使えるメソッドやその使い⽅方を⽰示しておく • サンプルコード – 「eg」ディレクトリに配置すれば サンプルコードとして扱ってくれる(MetaCPAN)
さいごに
APIクライアント作っていこう! • 昨今様々なサービスが開発されている • API ClientがCPANにないものもある – 愛⽤用しているサービスのAPI Clientがないので あれば, 作っていこう!
• みんながお得!!! – ⾃自分も便便利利 – サービス利利⽤用者も便便利利 – サービス提供者も嬉しい
おわり ご静聴ありがとうございました!