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ドキュメントにまつわる試行錯誤 #gotandajs
Search
mizuki_r
September 02, 2016
Technology
1
870
APIドキュメントにまつわる試行錯誤 #gotandajs
2016-09-02 Gotanda.js #5 の発表資料
mizuki_r
September 02, 2016
Tweet
Share
More Decks by mizuki_r
See All by mizuki_r
FrontendUp_新規事業で_Remixを採用した理由と対策.pdf
rymizuki
0
200
税理士ドットコムの 技術的挑戦 #tapioca_lt
rymizuki
0
270
PHPを始めて1年、レガシーシステムにどう向き合っているか #phpstudy
rymizuki
1
740
モダンとレガシー #gotandaem
rymizuki
0
560
Vuexに型を付けるパターンを調べた #gotandajs
rymizuki
0
130
DockerでNodeの開発は厳しいのか? #gotandajs
rymizuki
3
390
マネージャー!きみは何者だ! #gotandaem
rymizuki
0
1.8k
物語を楽しむための物語論
rymizuki
0
520
失敗と向き合う
rymizuki
0
1.5k
Other Decks in Technology
See All in Technology
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
150
Where will it converge?
ibknadedeji
0
190
【新卒研修資料】LLM・生成AI研修 / Large Language Model・Generative AI
brainpadpr
24
17k
Why React!?? Next.jsそしてReactを改めてイチから選ぶ
ypresto
10
4.5k
生成AIを活用したZennの取り組み事例
ryosukeigarashi
0
210
AI ReadyなData PlatformとしてのAutonomous Databaseアップデート
oracle4engineer
PRO
0
190
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
5.4k
いまさら聞けない ABテスト入門
skmr2348
1
210
許しとアジャイル
jnuank
1
130
いま注目しているデータエンジニアリングの論点
ikkimiyazaki
0
600
SOC2取得の全体像
shonansurvivors
1
400
AI時代だからこそ考える、僕らが本当につくりたいスクラムチーム / A Scrum Team we really want to create in this AI era
takaking22
6
3.5k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Become a Pro
speakerdeck
PRO
29
5.5k
RailsConf 2023
tenderlove
30
1.2k
The Cult of Friendly URLs
andyhume
79
6.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Building Applications with DynamoDB
mza
96
6.6k
Building an army of robots
kneath
306
46k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
APIドキュメントにまつわる 試行錯誤 2016/09/02 Gotanda.JS #5 @mizuki_r
@mizuki_r (株)モバイルファクトリー フロントエンドエンジニア JS, Perl Angular, Vue, Riot “HTMLは情報設計言語です!” 2
本日のお題 3
APIドキュメントにまつわる 試行錯誤
――を妄想している、 という話をします。
背景
最近の開発スタイル ʘUIϑΝʔετʗ ཁ݅ UI API ϞοΫ API αʔ ό ʔ
·ͣUI ใΛཧ͠ αʔόΛ ࡞Γ UIʹө͢Δ
最近の開発スタイル • ϑϩϯτerͰAPIϞοΫΛ࡞Δ • αʔόerϞοΫΛݩʹAPIΛ࡞Δ ʘAPIϞοΫͱ͍͏ίϛϡχέʔγϣϯπʔϧʗ
ユーザに対して どういう価値を提供するか? を土台に作れる! (๑•̀Ŷ•́๑)✧
悩み
モックの例 (&5BQJVTFSVTFS@OBNF ݸਓใΛͱͬͯ͘Δ \ OBNFʠVTFS@OBNFʡ BHF ^ ʘJSON5ʗ
よくあること • APIϞοΫͱαʔόͷϨεϙϯε͕ζϨΔ • POSTͷϦΫΤετύϥϝʔλ͕Θ͔Βͳ͍ • Ωʔ͕ԿΛ͍ࣔͯ͠Δͷ͔Θ͔Βͳ͍ • ফ͑ͨͣͷ༷͕ίϝϯτʹ͍ͬͯΔ ʘυΩϡϝϯςʔγϣϯෆʂʗ
問題… • ࡞ऀʹ༷Λ֬ೝ͢Δ • ίʔυΛಡΉ • ࣏͢… ʘ͜ɺίϛϡχέʔγϣϯπʔϧʂʗ
ツールで解決
API-Blueprint • MarkdownϕʔεͰυΩϡϝϯτΛهड़Ͱ͖ Δ • ύʔαʔΛఏڙ͠ɺ༷ʑͳ֦ு͕͋Δ
API-Blueprint • https://apiblueprint.org/ • MarkdownϕʔεͰυΩϡϝϯτΛهड़Ͱ͖ Δ • ύʔαʔΛఏڙ͠ɺ༷ʑͳ֦ு͕͋Δ
API-Blueprint
with Tools • aglio - HTMLʹυΩϡϝϯτΛܗ͢Δ • hariko - ϞοΫαʔόΛ্ཱͪ͛Δ
with Tools ཁ݅ UI API Blueprint API αʔ ό ʔ
UIΛઃܭ ใΛཧ αʔόͷߏங UIʹө API υΩϡϝϯτ API ϞοΫ ࣗಈੜ
解決できそう • ༷Λ໌จԽͰ͖Δ • ॻ͍ͨͷ͕ͦͷ··ಈ࡞͢Δ • ͕ٙ͋ͬͨΒه͢Ε͍͍ʂ ʘίϛϡχέʔγϣϯπʔϧʂʗ
でも…
問題は残る… • αʔόͱϞοΫͷ࣮ࠩ • API-Blueprintͷେͳ༷ • ֶशίετɺϝϯςίετ ʘӡ༻͕ΊΜͲͦ͘͞͏ʗ
妄想 • ͏Ұཉ͍͠ • αʔόͱͷ࣮ࠩΛิͰ͖Δ • ֶशίετʹݟ߹͏ޮԽ͕Ͱ͖Δ
あっ (゚∀゚)!
API-Blueprintのデータで Controllerくらいなら 作れんじゃね? (゚∀゚)!!
人類はどこまで 自動化できるのか〜?
API-Blueprintから取れるもの • ز͔ͭͷσʔλͷωετߏ • category, resource, action,transaction,httpTransaction,httpRequest,ht tpResponse,etc…
Controllerが要求するもの • ϦΫΤετͷஅ • Method, URL, Parameters • ॲཧͷஅ •
Modelͱ͔Serviceͷ໊લۭؒ • Ϩεϙϯεߏ • HttpStatus, Body, Header
use Amon2::Lite; use JSON::Types; get '/api/user/:user_name' => sub { my
($c, $args) = @_; my $params = $c->req->parametes; my %args = map { $_ => $params->{$_} or $args->{$_} } qw(user_name); my $entity = $c->factory('User')->get(%args); return $c->render_json(+{ name => string($entity->name), age => number($entity->age), }); }; __PACKAGE__->to_app;
(SPVQ6TFS (&5BQJVTFS\VTFS@OBNF^ 1BSBNFUFST VTFS@OBNF TUSJOH ʜϢʔβͷࣝผࢠ 3FTQPOTF BQQMJDBUJPOKTPO #PEZ
OBNF TUSJOH Ϣʔβͷࣝผࢠ BHF OVNCFS ྸ #PEZ \ OBNFʠNJ[VLJʡ BHF ^
ͳΜ͔ɺ Πέͦ͏ͳؾ͕͢Δʜ
DEMO https://gist.github.com/rymizuki/ab99a288dfafa841983182eddc0408c9
まとめ
まとめ • API-Blueprint with aglio x hariko x ??? •
API-BlueprintΛ༻͍ͨίʔυͷࣗಈੜ
所感 • υΩϡϝϯτͱϞοΫͱίʔυ͕࿈ಈ • ཧ্࠷ڧ • Ζ͏ͱࢥ͑ߦ͚Δ • ͰͦͷྔʹνʔϜ͍ͭͯ͜ΕΔ͔…? •
ߟྀ͢Δ͜ͱ͕߹ͤരൃͯ͠ࢮʹͦ͏…
やるなら 有効そう な無茶をしましょう!
ご清聴ありがとうございまし た