Princess APIのAPIクライアントをTypeScriptで作ってnpmで公開してみた
by
uutan1108
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Princess APIのAPIクライアントを TypeScriptで作ってnpmで公開し てみた IM@S Engineer MeetUp REBURN うーたん
Slide 2
Slide 2 text
自己紹介
Slide 3
Slide 3 text
うーたんです ● 名前 ○ うーたん ○ 大森裕介 ● 副業は新卒サーバーサイドエンジニア ● 矢吹 可奈を担当
Slide 4
Slide 4 text
SNS ● Twitter ○ @uutan1108 ● GitHub ○ OHMORIYUSUKE
Slide 5
Slide 5 text
参加したきかけ
Slide 6
Slide 6 text
今回、初参加です! 大学2年のころのイベントに参加したかったが参加でき なかった。今回は、3年前よりレベルアップしたのでオフ ラインで参加!!
Slide 7
Slide 7 text
作ったもの
Slide 8
Slide 8 text
TypeScriptでAPIクライアントを作っ た ● Princess — Public REST APIの TypeScriptのAPIクライアント ● ひたすら型定義をしてテストをたく さん書いた ● Princess — Public REST APIは アイドルの情報が取得できる WEB API https://github.com/OHMORIYUSUKE/princess-api -sdk/tree/main
Slide 9
Slide 9 text
Princess — Public REST API ● アイドルの情報やゲームの イベント情報が取得できる ● 20個以上のエンドポイント
Slide 10
Slide 10 text
モチベーション 1. イベントをconpassで発見する 2. 何か作って発表したい!! 3. 前に使ったことがあるアイマス関連のAPIクライアントを作ろ う! 4. どうせならnpmに公開したい(公開するのムズそう) 5. テストも書きたいし、ドキュメントも書きたい 6. そして、自分で作ったnpmパッケージを使って満足感を感じた い!
Slide 11
Slide 11 text
実装
Slide 12
Slide 12 text
これだけでnpmにリリースできた ● semantic-release ○ パッケージ公開 ○ バージョン管理 ○ リリースノートの作成を自動化
Slide 13
Slide 13 text
テストをChatGPTに教わりな がら書いた ● GPTに構造体を教えて、テ ストを書いてと頼んだら書い てくれる。 ● 勝手に謎のパッケージを定 義してくるので注意してあげ た ● JSONから構造体も作ってく れる
Slide 14
Slide 14 text
おしゃれなドキュメント(typedoc) ● READMEをおしゃれに表示してくれる ● コードに書き込んだ メソッドのコメントを ドキュメントに変換
Slide 15
Slide 15 text
感想
Slide 16
Slide 16 text
感想 ● 意外と簡単にnpmに公開できた ● ひたすら型を定義するのは辛い ● エンドポイントが多くて実装が間に合わなかった ● ChatGPTにJSONを教えて型を作ってもらうとサボれる ● TestもChatGPTに質問しながら書いた(Testを書いたの初めて かも)
Slide 17
Slide 17 text
package.jsonに名前が入るのがいい ● Node.jsのパッケージ(ライブラリ)管理ファイルに自分のパッ ケージ名が書き込まれる嬉しさ ● importするたびに感じる 「npmからインストール したパッケージだぁ」感
Slide 18
Slide 18 text
完成させられなかったけ ど、npmにも公開できた し、テストも書けた、ド キュメントも書けたし、よ し!
Slide 19
Slide 19 text
次にやりたいこと
Slide 20
Slide 20 text
色々なところに表示してるアイドルの誕生日を自分のパッケージに変更 する ● 今回、公開したパッケージでアイドルの情報を取得して 各ページに誕生日を表示したい! ホームページ GitHubトップ
Slide 21
Slide 21 text
ご清聴ありがとう ございました!!