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
Developing documentation for RESTful APIs
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ilya Chesnokov
February 16, 2017
Programming
48
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Developing documentation for RESTful APIs
Or how to kill three birds with one stone
Ilya Chesnokov
February 16, 2017
More Decks by Ilya Chesnokov
See All by Ilya Chesnokov
И снова об очередях
ichesnokov
0
34
Other Decks in Programming
See All in Programming
気持ちぃ〜角丸 Squircle
ryu1013
0
310
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
410
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
590
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
AmebaブログはKMPから卒業します
kmars0605
0
190
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
ジョジョの世界をXRで再現する
mofurune
0
160
The Rails Doctrine Decade
koic
2
590
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Code Review Best Practice
trishagee
74
20k
Un-Boring Meetings
codingconduct
0
460
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
How STYLIGHT went responsive
nonsquared
100
6.3k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
It's Worth the Effort
3n
188
29k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
820
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Transcript
Developing documentation for RESTful APIs: how to kill three birds
with one stone Ilya Chesnokov UK2 Group
Documentation is important • for API users – frontend developers
– customers using our API – our techsupport and QA • for API developers – code review – further use, development and refactoring of API – documentation (design)-driven development
Perl - POD • “Native” documentation format for Perl •
Easy to learn • Simple to use • Easily parseable • Extensible (if you have fantasy)
How to read docs? • perldoc • unparsed source •
convert to HTML and read in a browser
How to read docs? • perldoc – programmers only! •
unparsed source – programmers only! • convert to HTML and read in a browser – everyone
We need a converter!
What is documented? • General description • API routes and
methods • Input parameters • Output data – Possible errors
What is documented? • General description =head1, =head2 • API
routes and methods =head3 • Input parameters =head4, =item • Output data =head4, =item – Possible errors
None
=head3 POST /login Loging using your credentials. =head4 Input =over
=item username Username to login with. =item password Password to login with. =back =head4 Output ... The POD
None
None
None
None
Tweaks: common output
None
=head3 ANY /domain/:domain =head4 Output ...common output... =head3 GET /domain/:domain
=for docviewer output-from ANY /domain/:domain =head4 Output ...specific output ... Common output
Results • DDD FTW! – documentation is always up to
date – good programming practice • Testing (by hand) becomes even more easy • No need to write an admin panel – people use API console instead
Repository https://github.com/LoonyPandora/Pod -HTML5-Browser
Thank you! Ilya Chesnokov <
[email protected]
>